Autor | Zpráva | ||
---|---|---|---|
Australan z Čech Profil * |
#1 · Zasláno: 25. 1. 2009, 17:29:45
Ahojte,
vypisuji z db $vypsat=mysql_query("SELECT* FROM tabulka1 WHERE kategorie = '$kategorie' ............... a potřeboval bych poradit jak použít WHERE pro více kategorií najednou zkoušel jsem to takhle: $vypsat=mysql_query("SELECT* FROM tabulka1 WHERE kategorie, kategorie2, kategorie3 = '$kategorie' ............... ale takhle to nejde. Jde nějakým způsobem přidat počet porovnávaných sloupců v příkazu WHERE.? předem díky |
||
Kajman_ Profil * |
#2 · Zasláno: 25. 1. 2009, 17:33:55
kategorie = '$kategorie' and kategorie2 = '$kategorie'
kategorie = '$kategorie' or kategorie2 = '$kategorie' A nejlepší je dát vazbu na kategorie do jiné tabulky, aby jich mohl být libovolný počet. Pojmenování 123 zavání totiž špatným návrhem, který přinese spíše komplikace. |
||
Joker Profil |
#3 · Zasláno: 25. 1. 2009, 17:37:32 · Upravil/a: Joker
Australan z Čech
Při podmínce na více sloupců se používají logické výrazy, typicky AND a OR. AND je podmínka "a (současně)", tedy musí platit výrazy na obou stranách, OR je podmínka "anebo", tedy musí platit alespoň jeden z výrazů. Teď si vyberte podle toho, co chcete. SELECT * FROM tabulka WHERE prvni=1 AND druhy=2 -> vypíše řádky, kde sloupec prvni má hodnotu 1 a současně sloupec druhy má hodnotu 2 SELECT * FROM tabulka WHERE prvni=1 OR druhy=2 -> vypíše řádky, kde sloupec prvni má hodnotu 1 anebo sloupec druhy má hodnotu 2 Nicméně pokud máte v tabulce sloupce s indexovanými jmény- "kategorie, kategorie2, kategorie3,...", je nejspíš špatně návrh databáze. edit: Njn, kajman_ zvládl říct totéž rychleji a stručnějí. |
||
Australan z Čech Profil * |
#4 · Zasláno: 25. 1. 2009, 17:45:00
Díky, nevědel jsem, že můžu u sql příkazu používat normální php podmínky and a or. Už bych to měl zvládnout
|
||
Joker Profil |
#5 · Zasláno: 25. 1. 2009, 18:45:41
Australan z Čech
nevědel jsem, že můžu u sql příkazu používat normální php podmínky and a or To nejsou PHP podmínky, ale MySQL operátory. Operátory v MySQL viz zde: http://dev.mysql.com/doc/refman/5.0/en/non-typed-operators.html |
||
Časová prodleva: 9 let
|