Autor Zpráva
Monkeys
Profil *
Ahoj
potrebujem vypisat 15 ziaroviek v tomto poradi podla ich ID:

$poradie = array('13','14','15','12','11','9','10','1','2','3','4','5','6','7','8',);
$dotaz = 'SELECT maly_obr, nazov, id_ledky, cena, popis FROM gu10_led WHERE id_ledky IN(';
foreach($poradie as $kluc => $hodnota){
$dotaz .= $hodnota .",";
}
$dotaz = substr($dotaz, 0, -1). ') LIMIT '.$pociatok.','.$zobrazit.'';

ale vypisuje mi to podla $kluca (indexu) takze vypis je zli neviem kde robim chybu poradite mi ?

vdaka
M.
Someone
Profil
Monkeys:
Použij implode
Tori
Profil
Monkeys:
Zkuste tohle:
SELECT * FROM 
  (SELECT maly_obr, nazov, id_ledky, cena, popis, FIND_IN_SET(id_ledky, '13,14,15,12,11,9,10,1,2,3,4,5,6,7,8') 'poradi' 
  FROM gu10_led) tab 
WHERE poradi > 0 ORDER BY poradi
Je to trochu nešikovné a asi by to šlo zjednodušit, ale mělo by to řadit požadovaným způsobem. Už jsem tu podobný dotaz někdy viděla, ale teď to nevím najít.
Tori
Profil
Tak přece to jde jednodušeji, s použitím funkce FIELD(): ORDER BY - posloupnost jako v podmínce IN
Monkeys
Profil *
Tori:

vyriesil som to nakoniec takto a funguje to:

$poradie[] = "13,14,15,12,11,9,10,1,2,3,4,5,6,7,8";
$dotaz = 'SELECT maly_obr, nazov, id_ledky, cena, popis FROM gu10_led WHERE id_ledky IN(';
foreach($poradie as $kluc => $hodnota){
$dotaz .= $hodnota .",";
}
$dotaz = substr($dotaz, 0, -1). ') ORDER BY FIELD(id_ledky, 13,14,15,12,11,9,10,1,2,3,4,5,6,7,8) LIMIT '.$pociatok.','.$zobrazit.'';
$vysledok = mysql_query ($dotaz);

vdaka vyriesene

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0