Autor | Zpráva | ||
---|---|---|---|
hellmc Profil |
#1 · Zasláno: 9. 11. 2023, 15:51:55
Zdravím všetkých, mám taký malý program v PHP a MYSQL na riadenie knižnice, jednou s možností je pridávať výpožičky. Ak chcem zobraziť výpožičky používam query
$query_xls="SELECT clenovia_kniznice.id AS uid, clenovia_kniznice.meno, clenovia_kniznice.priezvisko, clenovia_kniznice.adresa, clenovia_kniznice.mail, vypozicky_rev.id AS vid, vypozicky_rev.od, vypozicky_rev.do, vypozicky_rev.absencna, vypozicky_rev.predlzena, fond.id AS fid, fond.prirast_cislo, fond.znacka, fond.podkategoria, fond.autor, fond.nazov, fond.vypoziciek FROM vypozicky_rev JOIN clenovia_kniznice ON vypozicky_rev.uid=clenovia_kniznice.id JOIN fond ON vypozicky_rev.idfond=fond.id ".$where." ORDER BY vypozicky_rev.od DESC "; $query=$query_xls."LIMIT ".$od.",".$po; .. keď chcem zobraziť nevrátené výpožičky vybratého člena použijem >> if(!nevratene()) { $towhere=""; $addto=""; } else { $towhere=" AND vypozicky_rev.do IS NULL"; $addto="&nevratene=on"; } if(isset($_GET['hladaj_vypozicku'])) { if(!empty($_GET['hladany_uzivatel']) AND empty($_GET['hladany_dokument'])) { $x=explode(" ",$_GET['hladany_uzivatel']); $meno=$x[0]; $nazov_okna="Hľadané: <span class='biely_bold'>(".$meno.")</span>"; if(array_key_exists(1,$x)) { # len meno a priezvisko $priezvisko=$x[1]; $where="WHERE clenovia_kniznice.meno='".real($meno)."' AND clenovia_kniznice.priezvisko='".real($priezvisko)."' ".$towhere; $nazov_okna="Hľadané: <span class='biely_bold'>(".$meno." ".$priezvisko."</span>)"; $add="&hladany_uzivatel=".$_GET['hladany_uzivatel'].$addto."&hladaj_vypozicku=Vyhľadať"; } else { $where="WHERE (clenovia_kniznice.meno LIKE '%".real($meno)."%' COLLATE 'utf8_general_ci' OR clenovia_kniznice.priezvisko LIKE '%".real($meno)."%' COLLATE 'utf8_general_ci') ".$towhere; $add="&hladany_uzivatel=".$_GET['hladany_uzivatel']."&hladaj_vypozicku=Vyhľadať".$addto; } ... problém je ak v databáze chcem zobraziť výpožičku, pre konkrétne meno, ktorá bola predĺžená teda pole predĺžená nie je 0 ale obsahuje id výpožičky napr 1288 hodí mi prázdny výsledok, WHERE clenovia_kniznice.meno='Janko' AND clenovia_kniznice.priezvisko='Mrkvička' AND vypozicky_rev.do IS NULL ak zvolím zobraziť všetky nevrátené : WHERE vypozicky_rev.do IS NULL AND vyradena=0 zobrazí všetky aj tie, ktoré boli predĺžené, takže správne ... už fuckt neviem, bude to nejaká blbosť , nehodi mi to žiadnu chybu... funkcia real() je mysqli_real_escape_string .... Ďakujem za hocijakú pomoc ... |
||
anonym_ Profil * |
#2 · Zasláno: 9. 11. 2023, 20:30:49
Píšeš, „ktorá bola predĺžená teda pole predĺžená nie je 0 ale obsahuje id výpožičky napr 1288“, ale s tím polem
vypozicky_rev.predlzena nikde v tom dotaze nepracuješ.
Jak vypadá výsledný dotaz? Můžeš připravit ukázku s trochou dat? Nemáš chybu v té podmínce if(!nevratene()) ? Možností je spousta.
|
||
hellmc Profil |
Nevratene su len funkcia na checkbox
function nevratene() { if(isset($_GET['nevratene']) AND $_GET['nevratene'] == "on") { return TRUE; } else { return FALSE; } } kompletne query >> SELECT clenovia_kniznice.id AS uid, clenovia_kniznice.meno, clenovia_kniznice.priezvisko, clenovia_kniznice.adresa, clenovia_kniznice.mail, vypozicky_rev.id AS vid, vypozicky_rev.od, vypozicky_rev.do, vypozicky_rev.absencna, vypozicky_rev.predlzena, fond.id AS fid, fond.prirast_cislo, fond.znacka, fond.podkategoria, fond.autor, fond.nazov, fond.vypoziciek FROM vypozicky_rev JOIN clenovia_kniznice ON vypozicky_rev.uid=clenovia_kniznice.id JOIN fond ON vypozicky_rev.idfond=fond.id WHERE clenovia_kniznice.meno='Jožko' AND clenovia_kniznice.priezvisko='Mrkvička' AND vypozicky_rev.do IS NULL ORDER BY vypozicky_rev.od DESC LIMIT 0,20 Dik za ochotu ... problém bol úplne inde .... mam tam ešte jeden dotaz, ktorý počíta všetky výsledky a v ňom bolo pridané WHERE predlzena=0 .... dik |
||
Časová prodleva: 10 měsíců
|
0