Я пробую следующий код:
<?php $link = mysql_connect('localhost', 'root', 'geheim'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; $query = "SELECT * FROM Auctions"; $result = mysql_query($query); while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { foreach($row as $field=>$value) { echo "$field: {$value} <br />"; } } mysql_close($link); ?>
И получите эту ошибку:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programme\EasyPHP 2.0b1\www\test.php on line 14
Что мне не хватает?
Вы не выбрали базу данных – используйте mysql_select_db()
Это было бы примерно так:
<?php $link = mysql_connect('localhost', 'root', 'geheim'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; $db_selected = mysql_select_db('foo', $link); if (!$db_selected) { die ('Error selecting database: '. mysql_error()); } echo 'Using database successfully'; $query = "SELECT * FROM Auctions"; $result = mysql_query($query); while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { foreach($row as $field=>$value) { echo "$field: {$value} <br />"; } } mysql_close($link); ?>
Возможно, ваш запрос MySQL не соответствует строкам в базе данных.
Проверьте возвращаемое значение mysql_query () , которое возвращает «ресурс» на успех и «ложь» при ошибке .
$query = "SELECT * FROM Auctions"; $result = mysql_query($query); if ($result !== false) { while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { foreach ($row as $field=>$value) { echo $field . ':' . $value } } } else { // query returned 0 rows }
Как и другие предложения, вы можете использовать mysql_error (), чтобы посмотреть, возвращает ли запрос любые ошибки mySQL
$ query = "SELECT * FROM Auctions";
$ result = mysql_query ($ query) или die (mysql_error ());
так что вы увидите ошибку
Вы получаете что-то возвращенное? Если результаты не найдены, mysql_query возвращает FALSE.
Проверьте это перед запуском fetch_array.