Autor Zpráva
hellmc
Profil
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="&amp;hladany_uzivatel=".$_GET['hladany_uzivatel'].$addto."&amp;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="&amp;hladany_uzivatel=".$_GET['hladany_uzivatel']."&amp;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 *
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0