ciao a tutti ho questo motore di ricerca :
il form per la ricerca è così:codice:if ($_POST['search']){ $searchwords = addslashes(htmlspecialchars($_POST['swords'])); if (strlen($searchwords) == 0){ echo "Inserire un termine da ricercare."; } elseif (strlen($searchwords) < 3){ echo "La chiave di ricerca è troppo breve. Inserire una parola di almeno 3 lettere."; } else{ $words = explode(' ',$searchwords); $totalwords = count($words); $i = 0; $searchstring = ""; while ($i != $totalwords){ if ($i != 0 and $i != $totalwords){ $searchstring .= " and "; } $searchstring .= "nome LIKE '%$words[$i]%' or descrizione LIKE '%$words[$i]%'"; $i = $i + 1; } $query = "SELECT * FROM prodotti WHERE $searchstring"; $result = mysql_query($query) or die(mysql_error()) ; if (mysql_num_rows($result) == 0){ echo "Nessun risultato. Prova ad inserire un termine diverso."; } else{ while ($row = mysql_fetch_array($result)){ $des = substr($row['descrizione'], 0, 50); if($row['immagine'] != ''){ echo "<img src=\"img/{$row['immagine']}.jpg\" width=\"80\" height=\"80\" class=\"img\" alt=\"{$row['extra']}\" /> <p class=\"nome\"><a href=\"viewprod.php?categoria={$row['categoria']}/{$row['nome']}\">{$row['nome']}</a></p> <div class=\"paragrafo\">$des ... <p class=\"torna\"><a href=\"#inizio\"> <img src=\"freccia.gif\" alt=\"torna all'inizio\" class=\"torna_img\" /></a></p>\n </div>\n";} else{ echo "<p class=\"nome\"><a href=\"viewcat.php?categoria={$row['categoria']}/{$row['nome']}\">{$row['nome']}</a> <div class=\"sep\">$des ... <p class=\"torna\"><a href=\"#inizio\"> <img src=\"freccia.gif\" alt=\"torna all'inizio\" class=\"torna_img\" /></a></p>\n </div>\n"; } } } mysql_free_result($result);} }
il problema è che non funziona come dovrebbe perchè se metto degli spazi bianchi nel form è come se li considerasse caratteri jolly e mi trova tutto ...codice:<form class="cerca" action="search.php" method="post"> <p class="ricerca"> <label>scrivi la parola da cercare <input name="swords" type="text" size="12" /></label> <input name="search" type="submit" value="Cerca" /> </p> </form>
se per esempio metto uno spazio vuoto e jj (_jj) (non c'è niente che corrisponda ovviamente nel database) mi trova tutto ... :master:
oltretutto con firefox funziona (anche se con i problemi di cui sopra) mentre su Internet Explorer non va e mi ridà sempre la ricerca nulla come se non avessi passato nulla con $_POST
(se non passo nulla mi da risposta di errore correttamente)
dove sbaglio ....?

dove sbaglio ....?
Rispondi quotando