Проблема я функцией mysql_fetch_assoc

Статус
Закрыто для дальнейших ответов.

liberty_kz

Новичок
Регистрация
31.01.2008
Сообщения
2
Всем привет, изучаю пхп 5, поставил тор сервер 2.1, сейчас по книжке пытаюсь понять как работает Базы данных (MySQL). Но тут же столкнулся с проблемой, точнее с ошибкой, хотя странно по книге все делал, все переписал как там

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in T:\home\localhost\database\gbookdb.php on line 22

В чем проблема, если переводить дословно, то получается снабженный(присвоенный) аргумент недействителен в ресурсах результатов MySQL
Конечно извиняюсь за свои английский, чето я понять ошибку не могу. Хотя код списывал с учебника.
Код:
$servername="localhost";
$dbname="uses";
$user="uses";
/**************Соединение с сервером***********/
$connect=mysql_connect($servername,$user) or
					exit("Не удалось соединиться с сервером");
/*Выбор БД*/
$db=mysql_select_db($dbname,$connect) or
					exit("Не удалось выбрать БД");
/*Выбор всех записей*/
$strsql="SELECT * FROM table ORDER BY date DESC";
$rez=mysql_query($strsql,$connect);//выполнение запроса
/**********Вывод содержимого БД**********/
[color="#FF0000"]while ($row = mysql_fetch_assoc($rez)){[/color]
	$i++;
	$t=$row['date'];
	echo "<b> $i. {$row['username']}</b> {$row['city']} $t<br>
	<b>Сайт:</b> <a href={$row['site']}>{$row['site']}</a>
	<b>E-mail:</b> <a href={$row['email']}>{$row['email']}</a><br>
	<br><textarea rows=4 cols=60>{$row['msg']}</textarea><br>";
	if ($row['answer']) {
	echo "<b>Ответ:</b><br>
		<textarea rows=4 cols=60>{$row['answer']}</textarea>";
	}
echo "<hr><br>";
}
mysql_close($connect);
Может я с именами серверов и баз данных попутал, все таки еще новичок.
 

~FisHBonE~

Well-Known Member
Регистрация
23.05.2005
Сообщения
136
У вас ошибка в SQL-запросе. date - зарезервированное MySQL слово. Поэтому что бы использовать его в качестве указателя на столбец в таблице, надо его заключить в обратные кавычки (`date`).

Для того что бы избегать подобных ошибок в будущем примите за правило имена таблиц и столбцов БД заключать в эти самые кавычки.

Запрос должен выглядеть так: "SELECT * FROM `table` ORDER BY `date` DESC".

При отладке скриптов используйте конструкцию or die(mysql_error()) или or exit(mysql_error()) они идентичны. Например так:

$rez=mysql_query($strsql,$connect) or die(mysql_error()."<br>$strsql");
 

liberty_kz

Новичок
Регистрация
31.01.2008
Сообщения
2
спасибо, попробую исправить
 
Статус
Закрыто для дальнейших ответов.
Верх Низ