Autor Zpráva
ipetr
Profil
Poradíte mi kde je chyba? Začalo to vyskakovat po přesunu na nový server s novým php a mysql.
Nejsem programátor a php opravdu neovládám. K db jsem připojen , části knohovního systému běží a stále v některých dotazech vyskakuje chyba:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /volume1/web/knihovna/detail.php on line 18

řádek 18 je tento while ($vytisk = mysql_fetch_array($res)) {

Celý podle mne problematický kód je tento.

    $sql = "select ident, vypujceno, vytisky.id from vytisky left join vypujcky on vytisky.id = vypujcky.id_vytisk 
            where id_knihy = $id order by ident";
    $res = mysql_query($sql);
    while ($vytisk = mysql_fetch_array($res)) {
      echo "Ev. číslo: <b>{$vytisk["ident"]}</b> ";
      if ($vytisk["vypujceno"])
        echo "\n";
Joker
Profil
ipetr:
Poradíte mi kde je chyba?
V tom, že nečtete Nejčastější potíže s PHP (FAQ).
ipetr
Profil
Já vím že asi nečtu ale jak jsem psal, nejsem programátor a ač jsem vykoukal co se dá, stejně to je pro mne stále jenom změť znaků. Poradíte mi prosím konkrétněji? Děkuji
Joker
Profil
ipetr:
Poradíte mi prosím konkrétněji?
Asi nedám dohromady nic konkrétnějšího, než je to odkázané vysvětlení.
Případně napište, čemu na něm nerozumíte.
ipetr
Profil
No potřeboval bych poradit, co kde opravit. Jestli je problém v jednom písmenku a nebo v celém kódu.
panther
Profil
ipetr:
co vraci mysql_error()?
Joker
Profil
ipetr:
Já myslel čemu nerozumíte na tom vysvětlení.
ipetr
Profil
panther:

1049: Unknown database 'nonexistentdb' pokud nonexistentdb přejmenuji na databázi knihovna, tak to vypíše jenom 0:
ipetr
Profil
Tak jsem našel chybu ale nevím jak jí opravit. V selectu je parametr $id který by se měl brát z odkazu který vypadá takto http://192.168.1.10/knihovna/detail.php?id=350

Na starém serveru si to ten parametr brát umělo a nový to nějak neumí. Poradíte? Nedá se třeba nastavit nějaká proměná do htacces?

$sql = "select ident, vypujceno, vytisky.id from vytisky left join vypujcky on vytisky.id = vypujcky.id_vytisk
where id_knihy = $id order by ident";

S touto úpravou mi to vypíše správně knihu id 300

$sql = "select ident, vypujceno, vytisky.id from vytisky left join vypujcky on vytisky.id = vypujcky.id_vytisk
where id_knihy = 300 order by ident";


Tak už jsem na to přišel, stačilo $id nahradit $_GET[id] a už to jede...
Tori
Profil
ipetr:
Raději to ještě přetypujte na číslo, pro bezpečnost: $sql = "select ident, vypujceno, vytisky.id from vytisky left join vypujcky on vytisky.id = vypujcky.id_vytisk where id_knihy = ". (int)$_GET['id'] ." order by ident";

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: