|
|
|
|
|
для: cheops
(27.04.2005 в 23:37)
| | Все супер, спасибо, работает! | |
|
|
|
|
|
|
|
для: SS
(27.04.2005 в 22:57)
| | Можно поступить примерно следующим образом
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Формируем запрос на выборку изображений
// с сортировкой по имени изображения
$query = "SELECT * FROM images ORDER BY name";
// Выполняем запрос
$tb = mysql_query($query);
// Проверяем правильность выполнения запроса
if(!$tb) exit(mysql_error());
// В цикле выполняем вывод изображений
while($img = mysql_fetch_array($tb))
{
echo $img['name']."<br>";
// Запрашиваем комментарии для данного изображения
$query = "SELECT comments.name_comment AS name_comment,
comments.puttime AS puttime,
users.name_user AS name_user
FROM comments, users
WHERE comments.id_image = $img[id_image] AND
users.id_user = comments.id_user
ORDER BY comments.puttime DESC";
// Выполняем запрос
$com = mysql_query($query);
// Проверяем правильность выполнения запроса
if(!$com) exit(mysql_error());
// Если есть хоть один комментарий - выводим
if(mysql_num_rows($com)>0)
{
while($comment = mysql_fetch_array($com))
{
echo $comment['puttime']." - ".$comment['name_user']."<br>";
echo $comment['name_comment']."<br>";
}
}
else
{
// Здесь можно вывести, что комментарие нет
}
echo "<br>";
}
?>
|
При использовании в первом запросе ограничения LIMIT (вы наверное всё равно будет постраничную навигацию использовать) заметного уменьшения скорости наблюдаться не должно. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2005 в 23:10)
| | Очень жду!!! - у меня вся работа из-за этого встала. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2005 в 23:10)
| | Ну я же не знал, что тут такие тонкости с названиями. Я как думал, так и сказал. :)
Хорошо, помогите тогда пожалуйста с такой схемой, - мне важен результат, мне нужно вывести все картинки и все комментарии. | |
|
|
|
|
|
|
|
для: SS
(26.04.2005 в 18:22)
| | Там не трёхтабличный запрос. Обычно запрашивают картинки - выводят их и для каждой картинки проверяют наличие комментариев. Т.е. система состоит из запроса - обработки результата в цикле и запроса в цикле не комментарии к изображениям. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2005 в 13:56)
| | Вы хотите сказать, что нельзя вывести такой запрос:
<Вывести все картинки, удовлетворяющие запросу>
IMAGE, где
<если есть комментарии, у которых ID_COMMENT=ID_IMAGE, то вывести эти комментарии><если ID_USER_COMMENT=ID COMMENT, то вывести такого юзера>
и т.д. в цикле
???
Мне кажется это довольно простым запросом с парой условий, просто я не знаю как это написать.
Как же тогда работают гостевые книги, форумы и галереи с возможностью оставить комментарий - там же примерно то же самое, что и мне нужно? | |
|
|
|
|
|
|
|
для: SS
(25.04.2005 в 23:25)
| | Нет, тогда не получится, получится только так: первым запросом вывести изображения у которых имеется комментарий, а вторым, отдельным запросом те, у которых нет ни одного комментария (сортировки средствами MySQL здесь к сожалению не получится). Можно сделать финт ушами, добавить системного пользователя в таблицу users (скажем с первичным ключём id_user = 0) и добавить каждому из изображений (автоматически) комментарий этого пользователя, а затем просто не выводить комментарий такого пользователя уже средствами PHP - грубо, но работает. | |
|
|
|
|
|
|
|
для: cheops
(25.04.2005 в 21:41)
| | -- Версия сервера: 4.0.21
-- Версия PHP: 4.3.9 | |
|
|
|
|
|
|
|
для: SS
(25.04.2005 в 18:33)
| | А вложенный запрос не сработает, они только в MySQL 4.1 появились, у вас какая версия MySQL? | |
|
|
|
|
|
|
|
для: cheops
(25.04.2005 в 13:25)
| | Покажите, пожалуйста, как выглядит упрощенная схема такого запроса в запросе? | |
|
|
|
|