Проблемы при обновлении решения с php 5.6 до 7.1

Я новичок, но мне удалось создать сайт бронирования для клиента, который отлично работает на сервере с mysql 5.7.21 и php 5.6.

Но теперь мне нужно переместить сайт на сервер, на котором работает php 7.1.

Мне удалось продублировать базу данных на новом сервере, и я могу подключиться к ней, но теперь у меня много кода, который не работает (используются команды mysql).

У меня есть следующий код, в котором я заменил mysql на mysqli и новую команду закрытия db, но она не работает - код генерирует только верхнюю часть таблицы с заголовками. - Может ли кто-нибудь прийти мне на помощь :)?

oversigt.php:

<?php
echo "<link rel='stylesheet' type='text/css' href='css.css' />";
echo '<h2>Reserve a spot</h2>';
echo '<a href="login.php" class="text_black">Administration</a><br /><br />';



    include('dbConfig.php');



if ($dbConnected) {

$sqli = "SELECT ";
$sqli .= "SUM(Company_Bookings.Spots) as SUMSPOT, Company_Trips.ID, Company_Bookings.FK_ID, Company_Trips.MaxSpots, ";
$sqli .= "Company_Trips.Tripnr, Company_Trips.StartDate, Company_Trips.EndDate, Company_Trips.StartLocation, ";
$sqli .= "Company_Trips.DestinationDK, Company_Trips.PricePerSpot ";
$sqli .= "FROM Company_Trips ";
$sqli .= "LEFT JOIN Company_Bookings on Company_Bookings.FK_ID = Company_Trips.ID WHERE Company_Trips.EndDate >= NOW() AND Company_Trips.EndDate < DATE_ADD(NOW(), INTERVAL 2 YEAR) ";
$sqli .= "GROUP BY Company_Trips.ID, Company_Bookings.FK_ID ORDER BY Company_Trips.StartDate ASC ";

$sqli_Query = mysqli_query($sqli);

$tdOdd = 'style = "background-color: #FFFFFF;"';
$tdEven = 'style = "background-color: #ced4ee;"';

echo "<table>";
    echo "<tr>";
        echo "<th>Trip nr</th>";
        echo "<th>Days</th>";
        echo "<th>Start date</th>";
        echo "<th>End date</th>";
        echo "<th>Departure place</th>";
        echo "<th>Destination</th>";
        echo "<th>Price per day</th>";
        echo "<th>Max spots</th>";
        echo "<th>Available spots</th>";
       echo "<th>&nbsp;</th>";

    echo "</tr>";

$indx = 1;
while ($row = mysqli_fetch_array($sqli_Query, MYSQLI_ASSOC)) {
    $SUMSPOTS = $row['SUMSPOT'];
    $SpotsLeft = $row['MaxSpots'] - $SUMSPOTS;
    $Tripnr = $row['Tripnr'];
    $StartDate = $row['StartDate'];
    $EndDate = $row['EndDate'];
    $StartLocation = $row['StartLocation'];
    $DestinationDK = $row['DestinationDK'];
    $PricePerSpot = $row['PricePerSpot'];
    $MaxSpots = $row['MaxSpots'];
    $StartDate1 = strtotime($row['StartDate']);
    $EndDate1 = strtotime($row['EndDate']);
     $Datediff = $EndDate1 - $StartDate1;
     $Datediff2 = ceil($Datediff / (60 * 60 * 24));

    if (($indx % 2) == 1) {$rowClass = $tdOdd; } else { $rowClass = $tdEven; }

    echo "<tr ".$rowClass.">";

        echo "<td>".$Tripnr."</td>";
        echo "<td>".$Datediff2."</td>";
        echo "<td>".date('D d/m/Y', strtotime($StartDate))."</td>";
        echo "<td>".date('D d/m/Y', strtotime($EndDate))."</td>";
        echo "<td>".$StartLocation."</td>";
        echo "<td>".$DestinationDK."</td>";
        echo "<td>&euro; ".$PricePerSpot."</td>";
        echo "<td>".$MaxSpots."</td>";


    //  if $result = ($row = $result->fetch_assoc()){};
        echo "<td>".$SpotsLeft."</td>";

 if ($SpotsLeft < 1){
echo "<td>&nbsp;</td>";
 } else {
echo "<td><a href='createBooking.php?ID=".$row['ID']."&IDD=".$SpotsLeft."'>Book</a></td>";
 }

    echo "</tr>";

    $indx++;

 }

echo "</table>";

}
mysqli_close($sqli_Query);

?>

К сожалению, дело не только в замене mysql_ на mysqli_. Вам нужно будет посмотреть руководство. Параметры, требуемые API mysqli_, отличаются от API mysql_.

RiggsFolly 11.04.2018 12:01

Спасибо, но у меня уже есть переписчик - я надеялся, что блестящий ум поможет мне внести несколько изменений, чтобы исправить это. Я узнал об этой устаревшей кодировке на Udemy.com, и я пытаюсь ускориться - но я не знаю, когда я смогу исправить проблемы, и мой клиент лежит на моей спине / -)

Jacob 11.04.2018 12:08

Вам придется отлаживать свой код. Один из способов сделать это - проверка на наличие ошибок, например. w3schools.com/php/func_mysqli_error.asp Если это не показывает ошибку. Вы можете просмотреть свой код и проверить, содержат ли переменные то, что ожидается. F.E. var_dump($row); exit(); И так далее

Vody 11.04.2018 12:26

Я, например, понятия не имею, что такое переписчик? И, пожалуйста, помните, что срочно для вас не обязательно срочно для нас.

RiggsFolly 11.04.2018 14:10

Это все коды доступа к базе данных кода для этого веб-сайта?

RiggsFolly 11.04.2018 14:11

Да извините - не смог изменить свой комментарий.

Jacob 11.04.2018 14:15

copyist = копировать сайт

Jacob 11.04.2018 14:15

У меня уже есть этот сайт, и он работает нормально, но на новом сервере с PHP 7.1 он не работает. Я уже знаю, что команды mysql устарели, и я пытался заменить их новыми, но, видимо, что-то сломалось.

Jacob 11.04.2018 14:16

Я думал, что нужно обновить / изменить всего несколько команд.

Jacob 11.04.2018 14:18

Это всего лишь одна страница (внутри макета Muse), но если я смогу запустить эту страницу, я, вероятно, смогу исправить другие 15 или около того файлов.

Jacob 11.04.2018 14:19

dbConfig.php содержит этот код: <? php $ hostname = ''; $ username = ''; $ пароль = ''; $ database = ''; $ dbConnected = mysqli_connect ($ hostname, $ username, $ password, $ database); if (! $ dbConnected) {die ('Не удалось подключиться:' .mysqli_connect_error ()); }?>

Jacob 11.04.2018 14:21

Я только что удалил конкретные данные

Jacob 11.04.2018 14:21

Исправлена ​​проблема

Jacob 13.04.2018 10:16
0
14
62
0

Другие вопросы по теме