мултиселект заявка

embaka

Registered
здравейте,

значи опитвам се да направя мултиселект заявка за едни градове. в момента заявката ми е такава
Код:
SELECT firms.`id`,firms.`logo`,firms.`info`,firms.`town`,firms.`name`, town.`name` as `town`, town.`id` as `townid` FROM `firms` LEFT JOIN `town` ON firms.`town`=town.`id` ORDER BY firms.`id` DESC LIMIT 0,12

взема по 1 ид за града и 1 име

в полето firms.`town` ми се записват по тоя начин
Код:
|127|129|130|

търсих някъде из нета да го направя с IN (id, id, id, id) обаче трябва всички да могат да се изберат
 
отговора е следния:


Код:
$last_firms=$dbh->GetAll("SELECT firms.`id`,firms.`logo`,firms.`info`,firms.`town`,firms.`name` FROM `firms` ORDER BY firms.`id` DESC LIMIT 0,12");
foreach ($last_firms as &$n)
{
	$town = trim($n['town'], "|");
	$n['town'] = str_replace("|", ",", trim($n['town'], "|"));
	$n['image'] = $dbh->GetOne ("SELECT url FROM images WHERE parent = ".$n['id']);
	$n['town'] = $dbh->GetAll("SELECT * FROM `town` WHERE `id` in (".$n['town'].")");
}
 
не те ли притеснява факта, че 7 реда код правят 25 заявки към базата ?
 
В най-общи линии това е почти единствения вариянт. Така, че не се притеснявай от тези 25 заявки :} другия начин е да ги вземеш с 1 заявка с много повторения на иментата и да ги отсортираш с много код през php, за това така си го ползвай.

Това което можеш да спестиш е да добавиш и images в left join и да махнеш поне нея заявка от while-а
 
ifkooo каза:
В най-общи линии това е почти единствения вариянт. Така, че не се притеснявай от тези 25 заявки :} другия начин е да ги вземеш с 1 заявка с много повторения на иментата и да ги отсортираш с много код през php, за това така си го ползвай.

Това което можеш да спестиш е да добавиш и images в left join и да махнеш поне нея заявка от while-а
Ако добави images с left join в първата заявка ще ги намали на 13. Така, че явно има вариант. И е добре да се притеснява от тези 25 заявки. Как така да не се притеснява? :shock: Това звучи много безодговорно и не професионално.
Ако ми даде структурата на трите таблици ще му го напиша с една заявка и 2 реда PHP код. Винаги има начин.
 
Ами ако правилно съм разбрал въпроса му, специално в mysql няма друг вариянт за това което той иска, аи е достатъчно като му погледнеш примера да разбереш какво иска и ако наистина мислиш, че има друг начин и на мене би ми било от ползва да го науча, тей като и аз ми се е налагало да стигна в тази ситуация да взема много поделементи на други елементи без повторения на основните, но с повторения в под масива
 

Back
Горе