Chyba ve skriptu PHP nebo SQL dotazu?
4 příspěvky
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
SQL dotazy: $kodovani='SET NAMES CP1250'; $dotaz="SELECT * FROM Bknihy WHERE ISBN=".$_POST['isbn']." or Autor=".$_POST["autor"]." or Nazev=".$_POST["nazev"].""; PHP skript (omlouvám se pokud je to příliš dlouhé): //Připojení k databázi if(!($link=mysql_connect($hostName, $userName, $password))) { echo '<p style="color: #FF0000;"><strong>Chyba:</strong> Nemohu se připojit k databázi. Opakujte akci prosím později...</p>'; exit(); } //Vybrání databáze if(!mysql_select_db($databaseName, $link)) { echo '<p style="color: #FF0000;"><strong>Chyba:</strong> Nemohu se připojit k databázi. Opakujte akci prosím později... <br>'; echo '<strong>Chyba:</strong> ' . mysql_errno($link) . mysql_error($link) . '</p>'; exit(); } //Nastavení kódování if(!mysql_query($kodovani, $link)) { echo '<p style="color: #FF0000;"><strong>Chyba:</strong> Nemohu nastavit kódování databáze. Opakujte akci prosím později... <br>'; echo '<strong>Chyba:</strong> ' . mysql_errno($link) . mysql_error($link) . '</p>'; exit(); } //Vykonání vyhledávání $vysledek=mysql_query($dotaz, $link); $radku=mysql_num_rows($vysledek); if($radku=='0') { echo '<p>Lituji ale vyhledávání neodpovídají žádné výsledky.</p>'; } else { echo 'Vašemu vyhledávání odpovídají tyto položky: <br>'; while($zaznam=mysql_fetch_array($vysledek)) { echo '<table border="1">'; echo '<tr><th>ISBN</th><th>Autor</th><th>Název</th>'; echo "<tr><td>".$zaznam['ISBN']."</td><td>".$zaznam['Autor']."</td><td>".$zaznam['Nazev']."</td></tr>"; echo '</table>'; } } A mne by zajímalo, zda-li mám chybu někde v PHP nebo SQL. Ve skriptu mi jde hlavně o to, aby se vypsaly knihy odpovídající hledání. Stačí když je vyplněné jedno pole a chci, aby to vypsalo všechny knihy u kterých souhlasí ISBN nebo autor nebo název. Děkuji za všechny odpovědi
-
Vypiš si obsah proměnné $dotaz a bude ti to jasné hned. Malá nápověda: Řetězce musí být v apostrofech.
-
A ještě jedna drobnost: Koleduješ si o SQL injection, tak si to sprav. Jinak o tu databázi brzy přijdeš.
-
No vidíš! Na to jsem zapomněl :-O. Děkuji za odpovědi.