синтаксическая ошибка, неожиданное ‘}’, ожидание, пока (T_WHILE) убивает меня

Я пытаюсь преобразовать некоторые довольно интенсивные страницы PHP в mysqli из mysql для версии 5 MySQL. Не хочу использовать PDO в это время.

База данных есть, простой общий запрос работает и отображается на странице PHP путем преобразования всего синтаксиса mysql в синтаксис mysqli, но для таких, как я, я не могу понять, где исправить эту ошибку. Я говорю, что это происходит в строке 449, и я перепробовал все выше и ниже этой строки.
Ниже приведена ошибка, а ниже — код для строк с 432 по 449. Эта страница отлично работает в базе данных mySQL 4.

синтаксическая ошибка, неожиданное ‘}’, ожидаемое время (T_WHILE) в C: \ inetpub \ wwwroot \ xxx \ carpoollocations.php в строке 449

Строка 332-449:

            } while ($myrowsel = mysqli_fetch_array($result,MYSQLI_BOTH));
echo "</TABLE>";
/*----------------------------------------------------------------
PAGING LINK - THIS IS USED FOR NEXT/PREVIOUS X RECORDS
----------------------------------------------------------------*/

if ($reccount > 10) {
//IF THERE ARE MORE THAN 10 RECORDS PAGING
$ttlpages = ($reccount / 10);
if ($page < $ttlpages) {
?>

<HR>    <br>
<A HREF="<?php echo $thispage; ?>?posting=yes&page=<?php echo $page; ?>&reccount=<?php echo $reccount; ?>&searchcrit=<?php echo $searchcrit; ?>&<?php echo $pagevars; ?>">Next <?php echo $pagenorecords; ?> Records >></a> <br>

<?php
} //END IF AT LAST PAGE
} //END IF RECCOUNT > 10

__________________________________________________________________
Обновленный с новой информацией, которая выглядела бы как ответ: нет цикла «делать пока» в msqli.

Спасибо всем за внимание.
Ну, это не точка с запятой после оператора while. Снял с той же ошибкой.
Я не мог понять неожиданное ‘}’ независимо от того, что я удалил или добавил. Также все кудри казались сбалансированными.
Поскольку этот блок встречается по всей странице без синтаксических ошибок, кроме той, которая была ниже оператора while, я решил изолировать цикл «do while» в простой, поскольку в ошибке упоминается T_WHILE. Я изменил его и поместил время в верхней части цикла, и это сработало. Положив его обратно внизу, мы увидели другую ошибку.

Таким образом, это работает и показывает все данные из 2 столбцов.

while ( $row = mysqli_fetch_array($result, MYSQLI_ASSOC) ) {

echo $row["id"]." ---- ".$row["Location"]."<br />";

}

Это запускает и создает ошибку «Неопределенная переменная: строка»:
Теперь это другая ошибка, но это начало. Я буду работать над изменением цикла завтра. Я заметил, что синтаксическая ошибка выше происходит, даже если я поставлю «die ();» путь вверху вверху вверху страницы.

do {

echo $row["id"]." ---- ".$row["Location"]."<br />";

}while ( $row = mysqli_fetch_array($result, MYSQLI_ASSOC) )

Любые мысли, если я иду в правильном направлении?

-4

Решение

            } while ($myrowsel = mysqli_fetch_array($result,MYSQLI_BOTH));<!--Change to {
echo "</TABLE>";
/*----------------------------------------------------------------
PAGING LINK - THIS IS USED FOR NEXT/PREVIOUS X RECORDS
----------------------------------------------------------------*/

if ($reccount > 10) {
//IF THERE ARE MORE THAN 10 RECORDS PAGING
$ttlpages = ($reccount / 10);
if ($page < $ttlpages) {
?>

<HR>    <br>
<A HREF="<?php echo $thispage; ?>?posting=yes&page=<?php echo $page; ?>&reccount=<?php echo $reccount; ?>&searchcrit=<?php echo $searchcrit; ?>&<?php echo $pagevars; ?>">Next <?php echo $pagenorecords; ?> Records >></a> <br>

<?php
} //END IF AT LAST PAGE
} //END IF RECCOUNT > 10

В вашем цикле while вы завершили его ; вместо { простая ошибка, которую легко сделать, но исправление которой должно исправить проблему. Если после этого все равно выдается ошибка, возможно, вам придется добавить новый } до конца сценария, чтобы закрыть цикл while.

1

Другие решения

Вы получаете неопределенную переменную $ row, потому что цикл do … while обработает код, который в do {} сначала и в первый раз переменная $ row не зарегистрирована, а затем обработает while () и вернется к do { } 2-й раз это будет работать, но будет ошибка, которую вы должны напрямую использовать в цикле while для mysqli или mysql

0

По вопросам рекламы [email protected]