Ошибка анализа: синтаксическая ошибка, неожиданный T_ECHO

Я работал над чем-то в течение последних нескольких дней, но этот один бит кода постоянно вызывает неожиданный T_ECHO. Мои друзья не могут найти ничего плохого в этом, и я нахожусь на грани моего терпения. Даже при удалении вложенного цикла while он все равно выдает ошибку, и я переключился на while: endwhile; синтаксис, и я все еще получаю его. Я уверен, что ответ смотрит мне в лицо, но я, вероятно, не вижу этого.

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)): echo "<tr>"; echo "<td>". $row["site_description"] ."</td>"; echo "<td>". $row["url"] ."</td>"; echo "<td><select>"; while ($roar = mysql_fetch_array($categories, MYSQL_ASSOC)): echo "<option value=\"". $roar["category"] ."\">". $roar["category"] ."</option>"; endwhile; echo "</select></td>"; echo "</tr>"; endwhile; 

Вы можете использовать короткие теги, чтобы сделать это гораздо более читаемым и, вероятно, менее подверженным ошибкам.

 <?php while ($row = mysql_fetch_array($result, MYSQL_ASSOC)): ?> <tr> <td><?= $row["site_description"] ?></td> <td><?= $row["url"] ?></td> <td> <select> <?php while ($roar = mysql_fetch_array($categories, MYSQL_ASSOC)): ?> <option><?= $roar["category"] ?></option> <?php endwhile; ?> </select> </td> </tr> <?php endwhile; ?> 

Попробуй это…

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

Я добавил «\ t» и «\ n» к строкам, чтобы сделать формат html красивым в исходном источнике.

  $result = mysql_query("select * from tmp_sites"); $categories = mysql_query("select * from tmp_cats"); $select_options = ""; while ($roar = mysql_fetch_array($categories, MYSQL_ASSOC)): $select_options .= "\t\t<option value=\"". $roar["category"] ."\">". $roar["category"] ."</option>\n"; endwhile; echo "<table>"; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)): echo "\t<tr>\n"; echo "\t\t<td>". $row["site_description"] ."</td>\n"; echo "\t\t<td>". $row["url"] ."</td>\n"; echo "\t\t<td><select>\n"; echo $select_options; echo "\t\t</select></td>\n"; echo "\t</tr>\n"; endwhile; echo "</table>"