|
|
|
| Здрасте всем. Такая проблема. Личные сообщения. делаю запрос чтобы узнать сколько в папке входящие всего сообщений. Так вот в этой таблице есть поле От кого (from_userid) т.е. это не конкретное имя а id отправителя. а имя содержится в другой таблице с этим же id. так вот как бы одновременно запросить из таблицы с лс id отправителя, а из таблицы с юзерами имя юзеров, которому соответсвуют эти id ? | |
|
|
|
|
|
|
|
для: RV
(12.11.2005 в 16:58)
| | Не знаю структуру твоих таблиц, но допустим у тебя есть таблица users, которая содержит userid и name и есть таблица comments, которая содержит from_userid, который равен userid из users и собственно comment, который оставляет юзер
select count(comments.comments), users.name from comments, users where users.userid=comments.from_userid group by users.name
|
запрос выведет имена юзеров и во второй колонке, сколько у каждого сообщений | |
|
|
|
|
|
|
|
для: RV
(12.11.2005 в 16:58)
| | Да действительно неплохо увидить структуру таблиц... | |
|
|
|
|
|
|
|
для: cheops
(12.11.2005 в 22:46)
| |
$db_pm - таблица с лс, в ней:
privmsgs_id // ид мессяги. автоинкремент
privmsgs_subject //тема
privmsgs_from_userid //от кого
privmsgs_to_userid //кому
privmsgs_date // дата отправления
$db_users - таблица с юзерами. в ней:
user_id
username
|
точнее надо узнать не сколько всего сообщений, а выбрать все, чтобы потом это отобразить | |
|
|
|
|
|
|
|
для: RV
(13.11.2005 в 10:12)
| | Все сообщения, принадлежащие одному юзеру?
При условии, что privmsgs_from_userid = user_id запрос будет такой
select db_pm.privmsgs_subject, db_users.username from db_pm, db_users
where db_pm.privmsgs_from_userid=db_users.user_id and db_users.username="_имя_"
|
где _имя_ - это имя юзера.
У тебя очень трудночитаемые названия таблиц и полей. Рекомендую использовать названия попроще, тогда разбираться будет легче (потом, если что :-)) | |
|
|
|
|
|
|
|
для: WebTech
(13.11.2005 в 13:28)
| | Будьте любезны пояснить %-)
А каким макаром из такого селекта делается вывод?
Меня эта тема выборки текста из разных баз с таблицами имеющими одинаковые порядковые номера тоже интересует на данный момент.
Но переход от одного к другому иногда бывает сложным.
У меня сейчас делается выборка через цикл, типа:
while ($row = mysql_fetch_array($result)) {
...
};
|
Вывод ессно через $row['table']
На какой то момент это казалось достаточно удобным. Сейчас я понимаю что такой вариант нельзя применять к вашему изложению действий.
Можете что-нибудь по моему случаю сказать?
В общем - как выводить из вашего кода...
select db_pm.privmsgs_subject, db_users.username from db_pm, db_users
where db_pm.privmsgs_from_userid=db_users.user_id and db_users.username="_имя_"
|
...текст на страницу. | |
|
|
|
|
|
|
|
для: Arkanum
(14.11.2005 в 21:55)
| | Точно также, но обращаясь не к $row['privmsgs_subject'], а к $row['db_pm.privmsgs_subject'] или вводя псевдонимы для полей в запросе при помощи оператора AS
select db_pm.privmsgs_subject AS privmsgs_subject,
db_users.username AS username
from db_pm, db_users
where db_pm.privmsgs_from_userid=db_users.user_id and db_users.username="_имя_"
|
Тогда можно обращаться по псеводинму, указанному после ключевого слова AS. | |
|
|
|
|
|
|
|
для: cheops
(15.11.2005 в 00:34)
| | Всё перепроверил, а эта бесовская тема мне надоедает:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in | |
|
|
|
|
|
|
|
для: Arkanum
(15.11.2005 в 01:45)
| | А у вас просто ошибка в SQL-запросе - лучше всегда проверять после выполнения запроса функцией mysql_query() - не возвратила ли база данных ошибку, иначе можно очень долго отлаживать код.
<?php
$query = "...";
$res = mysql_query($query);
if(!$res) exit(mysql_error());
while($result = mysql_fetch_array($res))
{
...
}
?>
|
| |
|
|
|
|
|
|
|
для: Arkanum
(15.11.2005 в 01:45)
| | Отлично. Спасибо. 3 минуты от отладил.
У меня ещё вопрос есть по теме близкой к этому.
При таком выводе из нескольких баз DESC LIMIT num не работает.
Какие есть способы ограничения вывода и вывод с последнего ID? | |
|
|
|
|
|
|
|
для: Arkanum
(15.11.2005 в 14:40)
| | Как понять не работает?
LIMIT всего лишь ограничивает вывод результирующего набора записей, как бы ни был составлен запрос. Возможно запрос с сортировкой по убыванию неправильно составлен, до слова LIMIT? | |
|
|
|
|
|
|
|
для: Arkanum
(15.11.2005 в 14:40)
| | Точно. Совсем запутался с этими запросами. Разобрался :)
А вопрос по красоте можно задать? а то такой длинный запрос получается. Можно как сократить? | |
|
|
|
|
|
|
|
для: Arkanum
(15.11.2005 в 15:14)
| | Никак его не сократишь :-( Только если имена таблиц и полей покороче придумать :-) | |
|
|
|