| 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: 3 roky
|
|||
0