• User Attivo

    Ricerca like

    Cao a tutti.
    Avrei fatto un form per la ricerca like e una pagina dove visualizzare i dati,
    pero' non funziona ....
    Mi sapete aiutare
    Questo e' un estratto.
    [php]
    <?php

    mysql_select_db($database_cnx, $cnx);
    $query_dati = "SELECT * FROM listino";
    $dati = mysql_query($query_dati, $cnx) or die(mysql_error());
    $row_dati = mysql_fetch_assoc($dati);
    $totalRows_dati = mysql_num_rows($dati);
    $cerca=$row_dati['nome'];
    ?>

    <form id="cerca_form" name="cerca_form" method="post" action="liste/index.php?cerca=<?php echo $cerca; ?>">
    <table width="500" border="0" align="center" class="tabella">
    <tr>
    <td> </td>
    </tr>
    <tr>
    <td align="center"><label>
    <select name="cerca" onchange="this.form.submit()" id="cerca">
    <option selected="selected">--Seleziona saldatrice--</option>
    <option value="UNO">UNO</option>
    <option value="DUE">DUE</option>
    </select>
    </label></td>
    </tr>
    <tr>
    <td align="center"> </td>
    </tr>
    </table>
    </form>[/php]
    La ricerca

    [php]$cerca=$_POST['cerca'];
    $sql = 'SELECT * FROM listino WHERE nome LIKE "$cerca" ORDER BY id';
    $res = $db->query($sql);
    $result[] = '<ol>';
    while ($f = $res->fetch())
    {
    $result[] = '<li>"'.$f['nome']. '"by '.$f['marca']. ': €'.$f['prezzo'].'<br>
    <a href="carrello.php?action=aggiungi&id='.$f['id'].'">Aggiungi al carrello.</a></li>';
    }
    $result[] = '</ol>';
    echo @join('',$result);[/php]
    Grazie mille.:smile5::smile5:


  • User

    Prova con...

    [PHP]

    LIKE "%$cerca%"

    [/PHP]


  • User Attivo

    Ciao
    Ho provato come mi hai detto ma non mi compare a video niente.
    Penso che sia $result[] la causa ,ma non so come modificare a doc, lo script per la visualizzazione


  • User Attivo

    Prova così :
    [php]$cerca=$_POST['cerca'];
    $sql = 'SELECT * FROM listino WHERE nome LIKE "%$cerca%" ORDER BY id';
    $res = $db->query($sql);
    $result = Array();
    $result[] = '<ol>';
    while ($f = $res->fetch())
    {
    $result[] = '<li>"'.$f['nome']. '"by '.$f['marca']. ': €'.$f['prezzo'].'<br>
    <a href="carrello.php?action=aggiungi&id='.$f['id'].'">Aggiungi al carrello.</a></li>';
    }
    $result[] = '</ol>';
    foreach($result as $linea){
    echo $linea;
    }[/php]


  • User Attivo

    Nulla da fare.
    Ho provato a vedere di mettere un cho $cerca;
    per vedere se mi passa la ricerca.
    La ricerca la passa correttamente, pero' non stampa i record trovati.
    Hai creato una variabile $linea,ma a cosa servirebbe?
    Se io tolgo WHERE nome LIKE "%$cerca%"
    mi mostra tutti i record nel database.
    grazie .Ciao


  • User Attivo

    Forse ....
    [php]$cerca=$_POST['cerca'];
    $sql = 'SELECT * FROM listino WHERE nome LIKE "%$cerca%" ORDER BY id';
    $res = mysql_query($sql);
    $result = Array();
    $result[] = '<ol>';
    while ($f = mysql_fetch_array($res))
    {
    $result[] = '<li>"'.$f['nome']. '"by '.$f['marca']. ': €'.$f['prezzo'].'<br>
    <a href="carrello.php?action=aggiungi&id='.$f['id'].'">Aggiungi al carrello.</a></li>';
    }
    $result[] = '</ol>';
    foreach($result as $linea){
    echo $linea;
    } [/php]


  • User Attivo

    Grazie mille.
    Ho risolto mettendo la tua modifica con modificato:
    $sql = "SELECT * FROM listino WHERE nome LIKE '%$cerca%' ORDER BY id";