Autor Zpráva
Tred
Profil
tohle je formulář na vyhledávání:
<form method=post action=vysledky.php>
<table>
<tr><td><font color=#FFFFFF size=2>Hledat v:</td>
<td><select name=searchtype>
<option value=word>Názvu</option>
<option value=popis>Popisu</optoin></select></td>
<td><font color=#FFFFFF size=2>Vyhledávaný výraz:</td>
<td><input type=text name=searchterm size="20"></td>
<td><input type=submit value=Hledat></td></tr>
</table>
</form>

tohle je stránka která formulář zpracuje a odesle pozadavek databasi:
<?php
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];
$searchterm= trim($searchterm);

if (!$searchtype || !$searchterm)
{
echo '<font size=2 color="#FFFFFF">Neuvedli jste vąechny informace potřebné ke hledání.
Vra»te se prosím zpět a zkuste to znovu.</font>';
exit;
}

if (!get_magic_quotes_gpc())
{
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
}

@ $db = new mysqli('localhost', 'uživatel', 'heslo', 'database');

if (mysqli_connect_errno())
{
echo '<font size=2 color="#FFFFFF">Chyba: K databázi se nelze připojit. Zkuste to prosím později.</font>';
exit;
}

$query = "select * from words where ".$searchtype." like
'%".$searchterm."%'";
$result = $db->query($query);

$num_results = $result->num_rows;

echo '<font size=2 color="#FFFFFF"><p>Počet nalezených výrazů: '.$num_results.'</p>';

for ($i=0; $i <$num_results; $i++)
{
$row = $result->fetch_assoc();
echo '<p><strong>'.($i+1).'. Název: ';
echo htmlspecialchars(stripslashes($row['word']));
echo '</strong><br />Popis: ';
echo stripslashes($row['popis']);
echo '</p>'</font>;
}

$result->free();
$db->close();

?>

když dám ale vyhledat nějaký výraz který v databázi je tak mě to nic nenajde ani nehodi chybu. proste se nic nestane!!! nevite v cem je chyba???
Jan Tvrdík
Profil
zkus smazat ten zavináč před $db a případně nech vypsat mysqli_error(). Třeba je tam někde chyba v dotazu. Zkus vypsat proměnné, kde se dá a sledovat, jestli se někde "nepokazily"

PS: já mysqli neznám, znám jenom mysql, ale ono je to všechno podobný
Tred
Profil
no to mysqli connect errno by mělo hlásit chybu a ten zavináč to myslím potlačuje .....
Jan Tvrdik
Profil *
protože mysqli neumím a ani to nemám naistalovaný, celý jsem si to přepsal do MYSQL. Stále se ale nic nezobrazovalo, i když to bylo ve zdroji validně napsaný. Pak se to stalo. Já na to přišel. Celý problém je naprosto banální nemá tam být color="#FFFFFF"(to je bílá a ta není vidět), ale color="#000000" (černá a ta už vidět je)
Jan Tvrdik
Profil *
Akorát pořád nechápo, co přesně ošetřuje to:
if (!get_magic_quotes_gpc())

{
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
}
Anonymní
Profil *
if (!get_magic_quotes_gpc())

{

$searchtype = addslashes($searchtype);

$searchterm = addslashes($searchterm);

}
ak nieje zapnuta direktiva get_magic_quotes_gpc() ktora automaticky slasuje (pekne slovo) tak sa prevedie kod na slasovanie premennych zadanych uzivatelom. tj zabezpecenie
Jan Tvrdík
Profil
aha
Toto téma je uzamčeno. Odpověď nelze zaslat.