Autor Zpráva
RPG
Profil
Ahoj všem,
byl bych rád, kdyby mi někdo dovedl pomoci s tímto problémem:
Mějme v databázi tabulku se články, u každého článku zaznamenávejme kategorii a autora.

Rád bych napsal takový SQL dotaz, abych mohl články podle kategorie i autora třídit; problém vzniká, když chci vypsat např. "všechny články uživatele Pepík", nebo naopak "všechny články z kategorie "Úvahy".

V selectech mohu vybrat tyhle hodnoty (např.):

Uživatel:
vše
honzík
anička
pepík

Kategorie
vše
Úvahy
Hovadiny
Zelení sloni

A pro takové kombinace neumím napsat SQL dotaz, který by pořadovaná data vybral.
Zkoušel jsem něco jako:

SELECT * FROM tabulka WHERE autor LIKE '$autor' AND kategorie LIKE '$kategorie';

S tím, že jsem hodnotu "vše", získanou ze selectu, nahradil pro dotaz znakem "%". Sice to funguje, ale připadá mi to jak neefektní, tak nepříliš bezpečné.
Děkuju všem
Taps
Profil
RPG
hod jsem ty selecty které používáš
Alphard
Profil
like je v tomto případě k ničemu
stačí where autor = 'anička'
když chceš vše, vůbec to tam nepiš
RPG
Profil
Tady je celý formulář:
<form action="" method="get">
Autor článku:
<select name="autor">
 <option value="vše">Vše</option>
 <option value="host">host</option>
 <option value="honza">honza</option>
</select>

Kategorie:
<select name="kategorie">
 <option value="vše">Vše</option>
 <option value="nezařazeno">nezařazeno</option>
 <option value="Poetické">Sklad</option>
 <option value="Dinosauři">Dinosauři</option>
 <option value="Teoretizování">Teoretizování</option>
 <option value="Hovadiny">Hovadiny</option>
</select>

<input type="submit" value="Filtruj"> Celkový počet článků: 9
</form>


Doplněno:
Alpharde, to je právě ono. Já tam to "vše" někdy potřebuji a někdy ne.
Taps
Profil
RPG
selecty..! tak použij podmínku if a proměnou kterou dáš do selectu
TSD
Profil
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=7 5169
RPG
Profil
Tapsi, "selecty" myslíš dotazy (dotaz)?

TSD, přečtu, děkuju za odkaz. Tohle vlákno jsem, žel, dříve nenašel.

Doplněno:
Takže jestli jsem to z odkázaného vlákna pochopil, stačí přijaté hodnoty vyhodnotit pomocí podmínek a z proměnných potom poskládat dotaz?
TSD
Profil
RPG
Prostě.. "SELECT něco FROM tabulka WHERE podmínky" skládáš a když je v daném selectu vybráno "vše", tak tam tu podmínku vůbec nedáš.
RPG
Profil
Takže jsem to pochopil dobře. Moc děkuju, TSD, i ostatním.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0