Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как соединить два запроса в БД?
Форумы портала PHP.SU » » Вопросы новичков » Как соединить два запроса в БД?

Страниц (1): [1]
 

1. Шмайсер - 30 Октября, 2011 - 14:55:25 - перейти к сообщению
Всем доброго дня. Есть два запроса, один выполняется после того, как пользователь в форме поиска введет нужные данные, а вот второй выполняется уже после, но он в цикле, что не есть гуд. Сам не осиливаю, подскажите пожалуйста как склеить оба запроса в один ( по возможно, если не трудно, приведите листинг)
Запрос первый
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT SQL_CACHE SQL_CALC_FOUND_ROWS * FROM $search_table WHERE $moder AND id_razdel$razdel"
  3.                    . " AND id_rubpkv$prof AND id_oblast$oblast AND id_city$city AND $zp_sort>='$zp'"
  4.                    . " AND currency_$type$currency AND (info_$type $q '$info_search') $order LIMIT $offset, $perPageSearch";
  5.         $result = mysql_query($query);
  6.         $line = mysql_fetch_assoc($result);
  7.  


Запрос второй
PHP:
скопировать код в буфер обмена
  1.  
  2. $query_c = "SELECT SQL_CACHE city.id_city, city.name_city, obl.id_oblast, obl.name_oblast FROM $city_t AS city, $oblast_t AS obl WHERE city.id_city='$line[id_city]' AND obl.id_oblast='$line[id_oblast]'";
  3.                 $result_c = mysql_query($query_c);
  4.             $line_c = mysql_fetch_assoc($result_c);
  5.  

Заранее спасибо!
2. caballero - 30 Октября, 2011 - 15:04:38 - перейти к сообщению
а что города с областями не связаны?

И уберите PHP переменные с запросов - глаза ломает - jcnfdnt njkmrj cenm/

вопрос то по SQL.
3. Шмайсер - 30 Октября, 2011 - 15:08:29 - перейти к сообщению
Нет, города и области не связаны, в том то и дело.
Вопрос по PHP - именно PHP выполняет запрос в БД))
4. caballero - 30 Октября, 2011 - 15:39:46 - перейти к сообщению
Цитата:
подскажите пожалуйста как склеить оба запроса в один


вопрос по SQL
что его выполняет неважно

так предоставте sql в читаемом виде
раскажите какие таблицы и что вы хотите вытащить
как можно понять что такое $search_table

когда на форуме нет ответов на несложный вопрос - это означает что никто не понимает сути вопроса и не может ответ сформулировать при всем желании
Я уже не говорю о желании расшифровывать что там наворочено.
5. Шмайсер - 30 Октября, 2011 - 15:58:31 - перейти к сообщению
А, понял! Сорри! Вот так наверное правильней будет

первый запрос

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $query = "SELECT SQL_CACHE SQL_CALC_FOUND_ROWS * FROM tablename1 WHERE active="1" AND id_razdel="id_razdel""
  4.                    . " AND id_rubpkv="id_rubpkv" AND id_oblast="id_oblast" AND id_city="id_city" AND $zp_sort>='$zp'"
  5.                    . " AND currency="id_currency"  LIMIT $offset, $perPageSearch";
  6.         $result = mysql_query($query);
  7.         $line = mysql_fetch_assoc($result);
  8.  


запрос 2
PHP:
скопировать код в буфер обмена
  1.  
  2. $query_c = "SELECT SQL_CACHE city.id_city, city.name_city, obl.id_oblast, obl.name_oblast FROM city AS city, oblast AS obl WHERE city.id_city='$line[id_city]' AND obl.id_oblast='$line[id_oblast]'";//$line[id_oblast]' береться из первого запроса
  3.                 $result_c = mysql_query($query_c);
  4.             $line_c = mysql_fetch_assoc($result_c);
  5.  
6. caballero - 30 Октября, 2011 - 16:11:34 - перейти к сообщению
час от часу не легче

что такое tablename1 ?
что там находится и что мы должны в конечном итоге выбрать и в каком виде

второй запрос вообще некорректный ты выбираешь данные с двух не связаных между собой таблиц
и что делать с бессмысленным месивом полей на выходе?

 

Powered by ExBB FM 1.0 RC1