Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Запрос одновременно в две таблицы

Сообщения:  [1-10]   [11-13] 

 
 автор: WebTech   (15.11.2005 в 16:43)   письмо автору
 
   для: Arkanum   (15.11.2005 в 15:14)
 

Никак его не сократишь :-( Только если имена таблиц и полей покороче придумать :-)

   
 
 автор: Arkanum   (15.11.2005 в 15:14)   письмо автору
 
   для: Arkanum   (15.11.2005 в 14:40)
 

Точно. Совсем запутался с этими запросами. Разобрался :)
А вопрос по красоте можно задать? а то такой длинный запрос получается. Можно как сократить?

   
 
 автор: WebTech   (15.11.2005 в 15:00)   письмо автору
 
   для: Arkanum   (15.11.2005 в 14:40)
 

Как понять не работает?
LIMIT всего лишь ограничивает вывод результирующего набора записей, как бы ни был составлен запрос. Возможно запрос с сортировкой по убыванию неправильно составлен, до слова LIMIT?

   
 
 автор: Arkanum   (15.11.2005 в 14:40)   письмо автору
 
   для: Arkanum   (15.11.2005 в 01:45)
 

Отлично. Спасибо. 3 минуты от отладил.
У меня ещё вопрос есть по теме близкой к этому.
При таком выводе из нескольких баз DESC LIMIT num не работает.
Какие есть способы ограничения вывода и вывод с последнего ID?

   
 
 автор: cheops   (15.11.2005 в 03:26)   письмо автору
 
   для: 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)   письмо автору
 
   для: cheops   (15.11.2005 в 00:34)
 

Всё перепроверил, а эта бесовская тема мне надоедает:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

   
 
 автор: cheops   (15.11.2005 в 00:34)   письмо автору
 
   для: 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.

   
 
 автор: Arkanum   (14.11.2005 в 21:55)   письмо автору
 
   для: 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="_имя_"


...текст на страницу.

   
 
 автор: WebTech   (13.11.2005 в 13:28)   письмо автору
 
   для: 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="_имя_"

где _имя_ - это имя юзера.
У тебя очень трудночитаемые названия таблиц и полей. Рекомендую использовать названия попроще, тогда разбираться будет легче (потом, если что :-))

   
 
 автор: RV   (13.11.2005 в 10:12)   письмо автору
 
   для: 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 

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

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования