Кто может подсказать?
Мне нужно сделать два вида вывода из цикла комментариев.
1. Вывести только первый комментарий цикла.
$result = mysql_query("SELECT * FROM comments WHERE post='$id' LIMIT 0, 1 ", $db);
if(mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf(". . .", $myrow["id"], $myrow["text"]);
}
while($myrow = mysql_fetch_array($result))
{
;
}
}
;
}
2.Вывести последний комментарий цикла.
$result = mysql_query("SELECT * FROM comments WHERE post='$id'ORDER BY id DESC LIMIT 1 ", $db);
if(mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf(". . .", $myrow["id"], $myrow["text"]);
}
while($myrow = mysql_fetch_array($result))
{
;
}
}
;
}
Первый скрипт, работает отлично, но второй выводит вместо последнего комментария на 10 единиц ниже нужного номера id
Не могу понять, в чём дело?
Спустя 2 минуты, 51 секунда (13.11.2011 - 19:48) Игорь_Vasinsky написал(а):
SELECT * FROM `comments` WHERE `post` = ".(int)$id." ORDER BY` id` DESC LIMIT 1
попробуй.
Спустя 9 минут, 13 секунд (13.11.2011 - 19:58) Dali написал(а):
Попробовал.
Пишет:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
В переводе:
Предупреждение: mysql_num_rows(): поставленный аргумент не является правильным ресурсом результата MySQL в
Пишет:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
В переводе:
Предупреждение: mysql_num_rows(): поставленный аргумент не является правильным ресурсом результата MySQL в
Спустя 6 минут, 23 секунды (13.11.2011 - 20:04) Игорь_Vasinsky написал(а):
как строка запроса с функцией mysql выглядит?
Спустя 7 минут, 27 секунд (13.11.2011 - 20:11) Dali написал(а):
Не понял вопроса. Какая строка запроса, проверка что ли...?
if(!preg_match("|^[\d]+$|", $id))
{
exit("<p>Неверный формат запроса! Проверьте URL!");
}
$result = mysql_query("SELECT * FROM data WHERE id='$id'", $db);
if(!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@ruseller.com. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if(mysql_num_rows($result) > 0)
Спустя 2 минуты, 24 секунды (13.11.2011 - 20:14) Dali написал(а):
Виноват. Не то всунул.
Вот эта строка?
Вот эта строка?
$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id' ORDER BY id DESC LIMIT 1 ",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
Спустя 1 минута (13.11.2011 - 20:15) Xes написал(а):
Dali ты админ сайта ruseller.com ))) ?
$result3 = mysql_query ("SELECT * FROM comments WHERE post='".$id."' ORDER BY id DESC LIMIT 1 ",$db);
Спустя 7 минут, 44 секунды (13.11.2011 - 20:22) Игорь_Vasinsky написал(а):
Цитата |
'".$id."' |
без одинарных ковычек, а чтоб безопасно:
".(int)$id."
Спустя 46 секунд (13.11.2011 - 20:23) dadli написал(а):
Dali
что виведет: echo $id;
и что виведет: mysql_error();
что виведет: echo $id;
и что виведет: mysql_error();
Спустя 14 секунд (13.11.2011 - 20:23) Игорь_Vasinsky написал(а):
$result = mysql_query("SELECT * FROM data WHERE id=".(int)$id, $db);
Спустя 8 минут, 36 секунд (13.11.2011 - 20:32) Dali написал(а):
Блин. Извини, что не понял.
Но у меня похоже проблемы с сортировкой id или с denwer.
Что с моим вариантом, что с твоим последним - выводит одинаково.
Просто эти скрипты я использую для сворачивания комментариев на странице и
обратил сейчас внимание, что вывод всех комментариев кое где ломается в своей очерёдности. Например 20 стоит после 31 а не перед.
Что можно здесь сделать?
Но у меня похоже проблемы с сортировкой id или с denwer.
Что с моим вариантом, что с твоим последним - выводит одинаково.
Просто эти скрипты я использую для сворачивания комментариев на странице и
обратил сейчас внимание, что вывод всех комментариев кое где ломается в своей очерёдности. Например 20 стоит после 31 а не перед.
Что можно здесь сделать?
Спустя 3 минуты, 34 секунды (13.11.2011 - 20:36) alexbel2404 написал(а):
сортировать в запросе
Спустя 27 минут, 33 секунды (13.11.2011 - 21:03) Dali написал(а):
Спасибо всем за участие, но я сам
разобрался в чём дело.
Дело в том, что таблица к которой я обращаюсь выглядит так:
id | post |
1 | 3 |
2 | 1 |
3 | 1 |
4 | 2 |
5 | 2 |
6 | 2 |
и т.д. Поэтому 1й пост у меня показывает последний комментарий под
номером -3
2й пост - 6 и т.д.
Просто я id визуализировал на странице каждого поста как номер выводимого комментария - №$id и запутал себя.
Но как теперь вывести нумерацию постов так, что бы каждый пост начинал свою нумерацию на странице с 1 и до ... если id таблицы для этой цели не подходит?
разобрался в чём дело.
Дело в том, что таблица к которой я обращаюсь выглядит так:
id | post |
1 | 3 |
2 | 1 |
3 | 1 |
4 | 2 |
5 | 2 |
6 | 2 |
и т.д. Поэтому 1й пост у меня показывает последний комментарий под
номером -3
2й пост - 6 и т.д.
Просто я id визуализировал на странице каждого поста как номер выводимого комментария - №$id и запутал себя.
Но как теперь вывести нумерацию постов так, что бы каждый пост начинал свою нумерацию на странице с 1 и до ... если id таблицы для этой цели не подходит?
Спустя 4 минуты, 28 секунд (13.11.2011 - 21:08) Xes написал(а):
$i добавь в цикл когда перебираешь записи. Вначале присвой 1 внутри цикла увеличивай на 1 и выводи.
Спустя 4 минуты, 29 секунд (13.11.2011 - 21:12) Dali написал(а):
Спасибо, кажется понял. Сейчас попробую.