Есть запрос MySQL
$query_pot = mysql_query("SELECT * FROM `potoks` WHERE `ad_id`='$ad_id'");
Сама таблица potoks состоит из двух полей: id и ad_id
Этот запрос находит все id к с параметром ad_id. Так вот, этих id может быть два, три или к примеру вообще один. Количество id может быть разным.
Допустим id оказалось два: 156 и 157.
Вопрос вот в чем. Нужно составить запрос, который в другой таблице t2 возвратит в массив те строки, которые будут соответствовать тем двум id найденным в таблице potoks.
t2 содержит поля:
id, id_potok (этот параметр, который вытащен из первого запроса), sms
Как составить такой запрос, если заранее не известно чему должен быть равен id_potok, а тем более значений может быть несколько?
Спустя 1 час, 12 минут, 51 секунда (17.09.2012 - 20:18) TranceIT написал(а):
Из ИД составляем строку и запрос делаем вот так:
SELECT * FROM potoks WHERE ad_id IN ($ad_id)
SELECT * FROM potoks WHERE ad_id IN ($ad_id)
Спустя 11 часов, 41 минута, 11 секунд (18.09.2012 - 07:59) tureg1 написал(а):
Цитата (TranceIT @ 17.09.2012 - 17:18) |
Из ИД составляем строку и запрос делаем вот так: SELECT * FROM potoks WHERE ad_id IN ($ad_id) |
для чего? ведь и моим запросом возвращаются значения. Непонимаю?
вопрос в другом, как из другой таблицы возвратить в массив строки по этим двум параметрам?
Спустя 8 минут, 16 секунд (18.09.2012 - 08:07) GET написал(а):
$query_pot = mysql_query("SELECT t2.id FROM `t2` INNER JOIN `potoks` ON t2.id=potoks.id AND potoks.ad_id='".$ad_id"'");
?
Спустя 39 минут, 11 секунд (18.09.2012 - 08:47) tureg1 написал(а):
Цитата (A.B.C. @ 18.09.2012 - 05:07) |
$query_pot = mysql_query("SELECT t2.id FROM `t2` INNER JOIN `potoks` ON t2.id=potoks.id AND potoks.ad_id='".$ad_id"'"); ? |
понять не могу почему этот запрос возвращает только id из t2, а остальные поля не возвращает?
$query_pot1 = mysql_query("SELECT t2.id FROM `t2` INNER JOIN `potoks` ON t2.id=potoks.id AND potoks.ad_id='".$ad_id."'");
while($row_pot1=mysql_fetch_array($query_pot1)) {
echo "
$row_pot1[id]
$row_pot1[sms]
";
Спустя 1 минута, 58 секунд (18.09.2012 - 08:49) GET написал(а):
Цитата |
онять не могу почему этот запрос возвращает только id из t2 |
Цитата |
"SELECT t2.id FROM `t2` |
поправка:)
SELECT t2.id,t2.sms FROM `t2`
Спустя 5 минут, 24 секунды (18.09.2012 - 08:54) tureg1 написал(а):
то есть в селекте как я понял мы перечисляем какие поля и из какой таблицы мы вибираем?
Спустя 10 минут, 58 секунд (18.09.2012 - 09:05) GET написал(а):
tureg1
Да...т.к. названия полей могут совпадать например id, то надо писать t2.id указывая mysql, что интересует именно id из таблицы t2. Вот здесь к примеру без указания таблиц не обойтись никак:t2.id=potoks.id
Да...т.к. названия полей могут совпадать например id, то надо писать t2.id указывая mysql, что интересует именно id из таблицы t2. Вот здесь к примеру без указания таблиц не обойтись никак:t2.id=potoks.id
Спустя 6 минут, 18 секунд (18.09.2012 - 09:11) tureg1 написал(а):
получилось не то, что мне нужно, сейчас нарисую всю схему и выложу, потому как на словах это объяснить не получается =/
Спустя 20 минут, 45 секунд (18.09.2012 - 09:32) tureg1 написал(а):
Нарисовал всю схему
так вот как выдернуть из второй таблицы эти значения, как подсказывает A.B.C. - возвращает в массив, вообще не то что нужно
Спустя 14 минут, 25 секунд (18.09.2012 - 09:46) tureg1 написал(а):
хотя, сейчас попробую другую схему
Спустя 19 минут, 10 секунд (18.09.2012 - 10:06) GET написал(а):
$query_pot = mysql_query("SELECT SUM (t2.sms) AS `sms`, SUM (t2.stoimost) AS `stoimost` FROM `t2` INNER JOIN `potoks` ON t2.id=potoks.id AND potoks.ad_id='".$ad_id"'");
Спустя 1 час, 4 минуты, 59 секунд (18.09.2012 - 11:11) Shuriken написал(а):
можно ещё использовать вложеный запрос:
$query_pot = mysql_query("select *
from t2
where id_potok in
(SELECT id
FROM `potoks`
WHERE `ad_id`='".$ad_id."'"));
Спустя 1 день, 2 часа, 36 минут (19.09.2012 - 13:47) tureg1 написал(а):
A.B.C. воспользовался твоим запросом, скрипт жалуется на строчку
Пишет:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in Z:\home\pp\www\pages\static\index.php on line 62
то есть как я понимаю, нужно правильно возвратить эти данные? тогда какой командой это сделать?
while ($row_pot = mysql_fetch_row($query_pot)) //------------ на эту
{
echo "$row_pot[0]";
}
Пишет:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in Z:\home\pp\www\pages\static\index.php on line 62
то есть как я понимаю, нужно правильно возвратить эти данные? тогда какой командой это сделать?