• User Newbie

    Motore di ricerca

    Salve ragazzi..ho creato un piccolo motore di ricerca per il mio database e diciamo,nonostante non sia il massimo della programmazione,fa il suo dovere.Il problema sorge se scrivo una lettera o parola non contenuta nel mio database,e quidndi nel mio caso avendo scelto della mia tabella il campo titolo quando scrivo un titolo non contenuto,e in tal caso lo script si blocca non dandomi nessun segnale.Con onestà essendo principiante non ho idee su che tipo di controllo posso fare per far uscire in questo caso ad esempio una stringa"NESSUN RISULTATO"..vi posto il codice nel caso possiate aiutarmi:

    <?PHP

    $host="localhost"; // Host name
    $username="root"; // Mysql username
    $password="xxxxx"; // Mysql password
    $db_name="offerte"; // Database name
    $tbl_offerta="offerta"; // Table name
    // Connect to server and select databse.
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");
    $testo = htmlspecialchars(addslashes($_POST["ricerca"]));

    if (isset($testo) == false || $testo == "")
    {
    echo "segnalare una parola";
    break;
    }

    $sql= "SELECT * FROM offerta WHERE titolo LIKE '%$testo%'";
    $result = mysql_query($sql) or die(mysql_error());
    if(mysql_num_rows($result) > 0){
    while($row = mysql_fetch_assoc($result)){
    $data=$row['titolo'];
    $titolo=$row['news'];
    $id=$row['id'];
    $foto=$row['immagine'];
    // CREA CODICE HTML
    ?>
    <table width="310" height="82" border=1 id="ciao" widt=80%>
    <tr>
    <td width="31">Id</td>
    <td width="38">Titolo</td>
    <td width="38">Foto</td>
    <td width="38">News</td>
    </tr>
    <tr>
    <td><?PHP echo $id; ?></td>
    <td><?php echo $data;?></td>
    <td><img src="images/<?php echo $foto;?>" alt="" /></td>
    <td><?php echo $titolo;?></td><td width="62"><a
    href="modifica4.php?id=<?php echo $id;?>">Modifica</a></td>
    <td width="63"><a href="delete.php?id=<?php
    echo $id;?>">Cancella</a></td>
    </tr>
    </table>
    <?PHP
    }
    }
    ?>

    Grazie a tutti a prescindere...


  • User Attivo

    Ciao,
    da quello che vedo ti manca un else che restituisce un testo di errore se la ricerca non produce risultati.
    Verso la fine dopo la seconda parentesi graffa aggiungi un
    else echo "non trovato"; o quello che vuoi.


  • User Newbie

    Grazie tante Memica di cuore...forse bastava ragionare un pò di più :?...grazie ancora comunque...


  • User Attivo

    Se hai ancora bisogno non esitare a chiedere.
    Ciao ciao.