Zapis do databazy pomocou PHP
9 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Mam takyto problem. Spravil som 2 subory. pridaj.php a vloz.php . V pridaj.php je urbeny formular, ktory spusta script vo vloz.php. Problem je, ze po vyplneni udajov mi do tabulky nic nezapise a neviem kde v scripte mam chybu. <? $status = true; do { if (!IsSet($Cislo)): $status = false; break; endif; @$spojenie = MySQL_Connect("test", "", ""); if (!$spojenie): $status = false; break; endif; @$vysledok = MySQL_Query($spojenie, "INSERT INTO Filmy VALUES ($Cislo, '$skmeno', '$povmeno', '$rok', '$zaner', '$dabtit')"); if (!$vysledok): $status = false; break; endif; } while (false); ?> Prosim poradte niekto :(
-
Při ladění bych dal pryč ty @ ať zjistíš, zda některý řádek negeneruje chybu PHP. Dále bych použil MySQL_Error na zjištění, jakou chybu generuje MySQL (pokud teda chybu generuje, což zjistíš tou podmínkou if(!$vysledek) kterou tam už máš). Dále bych si zkusil vypsat řetězec, který posíláš jako dotaz do databáze. Prostě místo MySQL_Query dej echo. Tím zjistíš ty základní chyby, jako např. že $Cislo je neexistující proměnná (to je pouze příkad, nevím jestli existuje, z tvého kódu to není jasné).
-
Hm. no nic z toho mi nepomaha :( Hodim tu cely kod, ak by niekto vedel tak prosim poradte. Ja uz fakt neviem co tam moze byt zle. Takze toto je subor pridat.php <? Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT") ?> <head> </head> <body> <? @$spojenie = MySQL_Connect("mysql.wz.cz", "lako", "lakom"); if (!$spojenie): echo "Nepodarilo sa pripojiť k databáze.\n"; break; endif; MySQL_Select_DB("lako"); @$vysledok = MySQL_Query("SELECT Max(Cislo)+1 FROM Filmy"); if (!$vysledok): echo "Došlo k chybe pri spracovani databázy.<br>\n"; break; endif; if (MySQL_Fetch_Row($vysledok)) $film = MySQL_Result($vysledok, 0); else $film = ""; while (false); ?> <form aktion="insert.php" method=post> <h1><u><center>Pridatie nového filmu do databázy</center></u></h1> Číslo <input type=text name=number size=40 value="<?echo $film?>"><br><br> Slovenský názov <input type=text name=skname size=40><br><br> Pôvodný názov <input type=text name=povname size=40><br><br> Rok vydania <input type=text name=year size=4 maxlength=4><br><br> Žáner <select name=type> <option value=akcny>Akčný</option> <option value=dobrodruzny>Dobrodružný</option> <option value=dokumentarny>Dokumentárny</option> <option value=drama>Dráma</option> <option value=fantasy>Fantasy</option> <option value=historicky>Historický</option> <option value=horror>Horory</option> <option value=komedia>Komédia</option> <option value=romanticky>Romantický</option> <option value=rozpravka>Rozprávka</option> <option value=scifi>Sci-fi</option> <option value=thriller>Thriller</option> </select><br><br> Dabing / titulky: <blockquote> <input type=radio name=speak value=dabing>CZ/SK dabing<br> <input type=radio name=speak value=titulky>CZ/SK tituky<br> <input type=radio name=speak value=nic>Bez tituliek alebo dabingu<br> </blockquote> <center><input type=submit name=odoslat value="Odošli údaje"></center> </form> <form action="index.php"> <center><input type=submit value="Späť"></center> </form> <? do { @$spojenie = MySQL_Connect("mysql.wz.cz", "lako", "lakom"); if (!$spojenie): echo "Nepodarilo sa pripojiť k databáze.<br>\n"; break; endif; MySQL_Select_DB("Filmy"); @$vysledok = MySQL_Query("SELECT * FROM Filmy ORDER BY Cislo DESC"); if (!$vysledok): echo "Došlo k chybe pri spracovani databázy.<br>\n"; break; endif; while ($zaznam = MySQL_Fetch_Array($vysledok)) echo $zaznam["skmeno"]."<br>\n"; MySQL_Close($spojenie); } while (false); ?> </body> a toto ten insert.php co je hore. <? $status = true; do { if (!IsSet($Cislo)): $status = false; break; endif; $spojenie = MySQL_Connect("mysql.wz.cz", "lako", "lakom"); if (!$spojenie): $status = false; break; endif; $vysledok = MySQL_Query($spojenie, "INSERT INTO Filmy VALUES ($number, '$skname', '$povname', '$year', '$type', '$speak')"); if (!$vysledok): $status = false; break; endif; } while (false); ?> Uz som sa na to par ludi pytal a nikto mi nevedel poradit :(
-
Co vypisuje po tom neuspesnem vkladani fce mysql_error() ?
-
No ten error som tam dal takto a nevypisuje vobec nic. len ma to naspet hodi do povodneho formulara a nic do databazy nezapise. inac je to na www.lako.borec.cz/pridaj.php <? $status = true; function chybova_sprava() { echo "Chyba: ".mysql_errno(). "; popis chyby: ".mysql_error()."<br>"; } do { if (!IsSet($Cislo)): $status = false; break; endif; @$spojenie = MySQL_Connect("mysql.wz.cz", "", "l"); if (!$spojenie): chybova_sprava(); $status = false; break; endif; @$vysledok = MySQL_Query($spojenie, "INSERT INTO Filmy VALUES ($Cislo, '$skmeno', '$povmeno', '$rok', '$zaner', '$dabtit')"); if (!$vysledok): $status = false; break; endif; } while (false); ?>
-
Takhle volas mysql_error po pripojovani, ale me spise zajima co to vypise po tom INSERTu. Takze pouzij mysql_query(INSERT ...')or die(mysql_error()); , to by melo stacit
-
Uz to vidim, funkci mysql_query predavas argumenty v opacnem poradi. Nejdrive se dava text dotazu a pak nepovinne pripojeni.
-
Takze diky funus chcel by som ti podakovat za rady. Sice ani jedna nepomohla, ale to len koli tomu ze som blbec :) Prva a najdolezitejsia chyba bola, ze som vo formulary mal namiesto <form action=""> napisane <form aktion"">. som to ale tupec :)
-
jj, ta angličtina