Autor Zpráva
Fanda
Profil *
Ahoj, zasekl jsem se s jedním primitivním dotazem. Mám v databázi tabulku lide a v ni atributy id a jmeno. Řekněme, že je následovně vyplněná:

id jmeno
1 Pepa
2 Ondra
3 Karel

A já potřebuju vybrat id třeba Pepy a Karla. Tak jsem napsal něco takovéhleho, jenže je to samozřejmě špatně...

SELECT id FROM lide WHERE jmeno=('Pepa','Karel');
turtle
Profil *
SELECT id FROM lide WHERE jmeno IN ('Pepa','Karel');
MilanJ
Profil
SELECT id FROM lide WHERE jmeno=('Pepa') OR jmeno=('Karel')
b3h
Profil
Myslim si ze v tom druhem pripade nejsou potreba zadnych zavorek :)
Fanda
Profil *
...a je potom korektní v php, pokud mám jména v nějakém poli, napsat takovýhle zápis?

$sql= mysql_query("SELECT id FROM lide WHERE jmeno in '$pole[]' ");
turtle
Profil *
Nie, musíš z toho urobiť string
napr.:

$aaa='';

foreach ($pole as $bbb) {
$aaa.= "'" . $bbb. "',";
}
$aaa=trim($aaa,","); //odstránenie poslednej čiarky
Fanda
Profil *
Jsem ještě začátečník takže si vůbec nejsem jistý, jestli tomu rozumím, ale je mi jasné, že ten nápad s foreach je správný... Nejsem jistý, co má představovat to $aaa

Moje představa je asi taková to: Mělo by to fungovat tak, že do toho foreach přidám ten můj $sql dotaz a tam kde bych zadával klasickou proměnou tam bude díky foreach naskakovat ta proměnná $bbb

neboli něco takového:

foreach ($pole as $bbb) {
$sql=mysql_query("SELECT id FROM lide where jmeno='$bbb' ");
}

...nebo jsem vedle, jak ta jedle; což mi přijde pravděpodobnější :)
turtle
Profil *
$aaa je premenná, ktorý bude obsahovať všetky hodnoty $pole[] pospájané do jedného reťazca v tvare použiteľnom v SELECTe (Asi som mohol vymyslieť aj lepší názov premennej :-)

ak $pole[0] ='Pepa' a $pole[1] ='Karel' po skončení cyklu foreach budeš mať v premennej $aaa reťazec
'Pepa','Karel'

Pozor na jednoduché a dvojité úvodzovky v cykle.


V SELECTe to použiješ po skončení cyklu takto:

$sql= mysql_query("SELECT id FROM lide WHERE jmeno in ($aaa) ");
Fanda
Profil *
díky moc!!!!
Toto téma je uzamčeno. Odpověď nelze zaslat.

0