помогите с простым запросов к бд

L
На сайте с 11.07.2009
Offline
6
337

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

$post = mysql_query("SELECT `post_id`,`post_title`,`post_preview_content`,`post_status`,`post_date_created` FROM `be_posts` WHERE `post_owner_id`=1 ORDER BY `post_id` DESC LIMIT 0,5");

if (!mysql_num_rows($post)){echo '<div class="posttitle">Еще нет ни одного поста. Может быть хотите создать первый?</div>';}else{

while ($post = mysql_fetch_array($post,MYSQL_NUM)){echo '<div class="posttitle">'.$post['1'].'</div><div class="postcontent">'.$post['2'].'</div>';}}

один раз данные выводит и выдает ошибку Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in W:\home\test1.ru\www\users\diary.php on line 37

если команду исполняю напрямую в phpmyadmin, то все нормально. с кодировкой тоже все впорядке.

post_id int(10) Да NULL auto_increment

post_owner_id int(10) Да

post_cat_id int(32) Да NULL

post_title text cp1251_general_ci Да NULL

post_content mediumtext cp1251_general_ci Да NULL

post_preview_content mediumtext cp1251_general_ci Да NULL

post_tegs_id int(32) Да NULL

post_comment_status int(1) Да

post_status int(1) Да

post_comments int(10) Да

post_date_created varchar(11)

kosenka
На сайте с 02.12.2007
Offline
122
#1

массив $post содержит записи, начиная с 0

и лучше не писать $post['1'] и т.д., а обращаться "по имени": $post['post_title'] и т.д.

и еще:

while ($post = mysql_fetch_array($post,MYSQL_NUM)) <- здесь ты перезаписываешь $post, что тоже может привести к ошибке. лучше так:

while ($row = mysql_fetch_array($post)) {echo '<div class="posttitle">'.$row['post_title'].'</div><div class="postcontent">'.$row['post_preview_content'].'</div>';}

L
На сайте с 22.06.2009
Offline
20
#2
lostpassword:

while ($post = mysql_fetch_array($post,MYSQL_NUM)){

а здесь ничего подозрений не вызывает?

Вакансия "Оптимизатора". З/П от 50000 рублей (http://www.superjob.ru/)
L
На сайте с 11.07.2009
Offline
6
#3
kosenka:
массив $post содержит записи, начиная с 0
и лучше не писать $post['1'] и т.д., а обращаться "по имени": $post['post_title'] и т.д.
и еще:
while ($post = mysql_fetch_array($post,MYSQL_NUM)) <- здесь ты перезаписываешь $post, что тоже может привести к ошибке. лучше так:
while ($row = mysql_fetch_array($post)) {echo '<div class="posttitle">'.$row['post_title'].'</div><div class="postcontent">'.$row['post_preview_content'].'</div>';}

скорость будет выше чем при обращении по именам, мне нужен именно post['1'] а не post['0']. на других участках кода перезаписываю переменные и все впорядке

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий