Скажите как, как каааааак?
while ( $myrow1 = mysql_fetch_assoc($result1) )
{
$id_unit_tovar = $myrow1['id_unit'] ;
// здесь выводится список из id товара который потом должен одновременно
//подставляться в условие where
}
так вот как мне реализовать, чтобы в условие WHERE подставлялась эта переменная (может быть массив, или код на php можно написать прямо в where ?)
$zapros2 = " SELECT id_unit, name, firma_unit, price, pics_unit, pkod, tip, yand FROM unit_tb ";
// чтобы здесь было что то вроде этого:
$zapros2. = "WHERE pkod = '$id_unit_tovar1' AND pkod = '$id_unit_tovar2' AND
pkod = '$id_unit_tovar3' ... ";
$zapros2. = " ORDER BY price";
$result_zapros2 = mysql_query ($zapros2,$lnk);
$myrow_2 = mysql_fetch_assoc($result_zapros_2) ;
В общем и целом мысль такая нужно выбрать из базы товар а условие взять из цикла.
Пробовал делать так:
while ( $myrow_1 = mysql_fetch_assoc($result_zapros_1) )
{
$id_unit_tovar = $myrow_1['id_unit'] ;
$zapros2 = " SELECT id_unit, name, firma_unit, price, pics_unit, pkod, tip, yand
FROM unit_tb WHERE pkod = '$id_unit_tovar' ORDER BY price";
$result2 = mysql_query ($zapros2,$lnk);
$myrow2 = mysql_fetch_assoc($result2) ;
}
все выводит но выводит как бы сначала pkod равный 1 сортирует все по цене,
потом выводит pkod =й 2 сортирует этот блок по цене, т.е. он выводит блоками и внутри каждого блока сортирует по цене, а надо чтобы вывел одновременно по заданным условиям и отсортировал не в нескольких блоках pkod, а в одном запросе))) ну вот как то так))
Спустя 18 минут, 37 секунд (15.11.2010 - 18:30) Sanchopansa написал(а):
$id_unit_tovar = array();
while ( $myrow1 = mysql_fetch_assoc($result1) )
{
$id_unit_tovar[] = $myrow1['id_unit'] ;
}
$zapros2 = " SELECT id_unit, name, firma_unit, price, pics_unit, pkod, tip, yand FROM unit_tb ";
// чтобы здесь было что то вроде этого:
$zapros2. = "WHERE pkod IN (" . implode(',', $id_unit_tovar) . ")";
$zapros2. = " ORDER BY price";
$result_zapros2 = mysql_query ($zapros2,$lnk);
$myrow_2 = mysql_fetch_assoc($result_zapros_2) ;
Спустя 16 часов, 52 минуты, 34 секунды (16.11.2010 - 11:22) kuzroman написал(а):
Цитата (Sanchopansa @ 15.11.2010 - 15:30) |
|
Спасибо за код.
НЕ пойму, но после этого участка кода:
$zapros2 = " SELECT id_unit, name, firma_unit, price, pics_unit, pkod, tip, yand FROM unit_tb ";
$zapros2. = "WHERE pkod IN (" . implode(',', $id_unit_tovar) . ")";
$zapros2. = " ORDER BY price";
$result_zapros2 = mysql_query ($zapros2,$lnk);
$myrow_2 = mysql_fetch_assoc($result_zapros_2) ;
на экран ничего не выводится.
А что делает конструкция WHERE IN ? Нигде не найду ее.
Спустя 19 минут, 35 секунд (16.11.2010 - 11:42) kuzroman написал(а):
сделал в одну строку, все заработало, почему то переменная с точкой $zapros2. тупит
не прибавляет строки.
не прибавляет строки.
Спустя 43 минуты, 3 секунды (16.11.2010 - 12:25) glock18 написал(а):
Цитата (kuzroman @ 16.11.2010 - 08:42) |
переменная с точкой $zapros2. тупит |
да, переменные с точками такие
Спустя 51 минута, 12 секунд (16.11.2010 - 13:16) sergeiss написал(а):
glock18 - не прикалывайся, человек уже не первый день "бодается" с SQL и ПХП... Ну, не его дело. Но - хочется
Спустя 8 часов, 15 минут, 46 секунд (16.11.2010 - 21:32) Sanchopansa написал(а):
$zapros2 .= "WHERE pkod IN (" . implode(',', $id_unit_tovar) . ")";
Это значит выбрать строки из базы где pkod входит в перечень в скобках.. тоесть строки с перечислеными значениями pkod
Спустя 3 минуты, 4 секунды (16.11.2010 - 21:35) Sanchopansa написал(а):
А "переменные с точкой" как ты их назвал тупят потому что это не переменная должна быть с точкой а знак ровно.. тоесть вот так (.=) и разделять их пробелом НИКОГДА НЕЛЬЗЯ!!
$zapros2 = " SELECT id_unit, name, firma_unit, price, pics_unit, pkod, tip, yand FROM unit_tb ";
$zapros2 .= "WHERE pkod IN (" . implode(',', $id_unit_tovar) . ")";
$zapros2 .= " ORDER BY price";
_____________
kuzroman@list.ru