Ошибка PHP "Неопределенная переменная: mysql_fetch_assoc"

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

$conn = mysql_connect('localhost', '-----', '-----','-----') 
or die('Error connecting to mysql');
$sql = "SELECT * FROM Subject";
$result = mysql_query($sql);
$row=null;
echo "<table>";
while( $row = $mysql_fetch_assoc[$result]){

echo "<tr><td>";
echo $data['SubjectNo'];
echo "</td><td>";
echo $data['SubjectName'];
echo"</td></tr>";
} 
echo "</table";
echo"urnan";

?>

2 ответа

В строке есть ошибка

while( $row = $mysql_fetch_assoc[$result]){

mysql_fetch_assoc это функция PHP, а не переменная. Так что не нужно ставить $ знак перед ним.

Так что следует читать

while( $row = mysql_fetch_assoc($result)){

Ошибка ясна: неопределенная переменная означает, что вы используете переменную, которая не определена нигде в вашем коде.

В чем проблема в вашем коде?

Ты используешь $mysql_fetch_assoc как переменная, которая не определена в вашем коде.

Более важный, $mysql_fetch_assoc это не равно mysql_fetch_assoc как мой другой приятель упоминается в комментариях.

Модифицированный код:

Это следует использовать как:

while( $row = mysql_fetch_assoc($result)){
  // your stuff
}

И вторая проблема в вашем коде - эти скобки [] это должно быть ()

Примечание:

Я предлагаю вам использовать mysqli_* или же PDO вместо mysql_* расширение, потому что оно устарело и недоступно в PHP 7.

Ссылки из руководств по PHP:

Объекты данных PHP (PDO)

MYSQL Improve Extension (mysqli_ *)

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