Autor Zpráva
Zelda
Profil
Přátelé, jakým způsobem vyberu z databáze podle více kritérií?
Např. seznam žáků, a já chci všechny Petry, kterým je více než 20 let.
mysql_query (select zak from zaci where ... eee? nevím :o/)
krteczek
Profil
$dotaz="select zak from tabulka where (jmeno='petr') and (vek>20) (and ...dalsi podminky) order by prijmeni asc (...nebo desc)";
vyber zaky kteri maji jmeno petr, a zároveň jim je více než 20let a vysledek seřad podle jeijch prijmeni vzestupně (a-z)
v zavorce je sestupně od z-a
krteczek
24k
Profil *
Ono zalezi co sis do te databaze ukladal. Pokud napriklad datum narozeni tak to pujde snadno funkci SUBDATE kde odectes NOW() od sloupce data narozeni a musi to byt vetsi nez 20 year ;)

vice mysql manual

a taky si projdi mm.gene.cz
Milos
Profil
Dobrý den,
mám odbobný dotaz
vybýrám z databáze pomocí
$vysledek=mysql_query("select * FROM tabulka where (podminka1 = 'podminka1' and podminka2 = 'podminka2' and podminka3 = 'podminka3') ");

a problém mám tom, co když zadám jen dva parametry do podminka3='cokoliv' a nevím který znak zastupuje "rovno čemukoli".
Zkoušel sem prázdnou hodnotu tj. '' ale to nefunguje.

Prosím o radu, jediné co mě napadá, je přes if to zjišťovat před samotným spuštěním dotazu a pokud není např. podmínka3 zadána tak ji vůbec do dotazu nezahrnu - ale přijde mi to docela pracné, hlavně pokud je podmínek třeba šest!!!

Díky za každou radu.
24k
Profil *
Neni to pracne ne ?

if ($podminka1=="cosi) $dodatek.="AND podminka1='podminka1'";
if ...



atd.. imho normalni
Milos
Profil
hmmm, zajimavé,
já to nakonec vyřešil tak, že při výběru neporovnávám hodnoty, ale použil jsem podminka1 like 'podminka1' a pokud není podminka1 zadaná, tak se tam vloží $podminka='%' což vybere všechno v dané podmínce...

zatím mi to funguje - víte li někdo důvod proč to nepoužívat - dejte vědět :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0