Pagina 4 di 4 primaprima ... 2 3 4
Visualizzazione dei risultati da 31 a 37 su 37

Discussione: Query di ricerca

  1. #31
    Grande...funziona... pero se nel database ho 2 persone che si chiamano con lo stesso nome/cognome compariranno comunque! Mi spiego meglio: se ho due Luca, uno De belli ed uno De rossi,
    se cerco luca de belli o luca de rossi compaiono entrambi!

    Se può semplificare la cosa...potrei usare anche solo una colonna nomecognome invece di due colonne nome e cognome...
    Ultima modifica di supersqualo; 17-08-2017 a 22:13

  2. #32
    Quote Originariamente inviata da supersqualo Visualizza il messaggio
    Grande...funziona... pero se nel database ho 2 persone che si chiamano con lo stesso nome/cognome compariranno comunque! Mi spiego meglio: se ho due Luca, uno De belli ed uno De rossi,
    se cerco luca de belli o luca de rossi compaiono entrambi!

    Se può semplificare la cosa...potrei usare anche solo una colonna nomecognome invece di due colonne nome e cognome...
    devi deciderti: o cerchi in OR le singole parole (e quindi esce tutto) oppure cerchi il nome preciso (con i limiti che tu stesso hai detto non essere accettabili).

    puoi anche fare due campi di input
    1. ricerca 'ndo cojo cojo (tutto in or/like)
    2. ricerca esatta


  3. #33
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    @supersqualo.

    Dire che con un numero d'ordine tutto sarebbe così semplice !

    A proposito. Hai pensato alle minuscole e maiuscole ?
    Esempio : ROSSI nella tabella e Rossi nel campo input.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #34
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Codice PHP:
    <!doctype html><html>
    <head>
    <meta charset="utf-8">
    <title>Ricerca</title>
    </head>
    <body>
    <?php

    $name 
    = isset($_POST['ricerca']) ? preg_replace('/\s+/'' 'trim($_POST['ricerca'])) : '';

    if (
    $name != '') {
        
    $q 'SELECT * FROM prenotazioni WHERE ';
        
    $parts explode(' '$name);
        
    $finded false;
        
    $firstName array_shift($parts);

        if (
    count($parts)) {
            
    $lastName implode(' '$parts);

            
    $new_q $q;
            
    $new_q .= ' ( nome LIKE \'%' $lastName '\' AND cognome LIKE \'%' $firstName '\' )';
            
    $new_q .= ' OR ( cognome LIKE \'%' $lastName '\' AND nome LIKE \'%' $firstName '\' )';
            
            
    $exec mysql_query$new_q);
            if (!
    mysql_num_rows($exec)) { 
                
    $new_q $q;
                
    $new_q .= ' nome LIKE \'%' $lastName '\' OR cognome LIKE \'%' $firstName '\' ';
                
    $new_q .= ' OR nome LIKE \'%' $firstName '\' OR cognome LIKE \'%' $lastName '\' ';

                
    $exec mysql_query$new_q);
                if (
    mysql_num_rows($exec)) {
                    
    $finded true;
                }
            }
        }
        else {
            
    $new_q $q;
            
    $new_q .= ' nome LIKE \'%' $firstName '\' OR cognome LIKE \'%' $firstName '\' ';
            
    $exec mysql_query$new_q);
            if (
    mysql_num_rows($exec)) {
                
    $finded true;
            }
        }
        
        if (
    $finded) {
            echo 
    '<tr>
                    <td width="242">
                        <table border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
                            <tr></tr>
                            <tr>
                                <td align="center" bgcolor="#FFFFFF"><strong>Nome</strong></td>
                                <td align="center" bgcolor="#FFFFFF"><strong>Cognome</strong></td>
                            </tr>'
    ;
                            
            while(
    $row mysql_fetch_array($exec)) {
                echo 
    '<tr>
                        <td align="center" bgcolor="#FFFFFF">' 
    $row['nome'] . '</td>
                        <td align="center" bgcolor="#FFFFFF">' 
    $row['cognome'] . '</td>
                    </table>
                     <p><br>
                       <br>'
    ;
            }
        }
        else {
            echo 
    'Errore: nessuna corrispondenza trovata.';
        }
        
    }
    else {
        echo 
    'Errore: Inserisci un nome.';
    }
    ?>
    </body>
    </html>

    E' l'ultima che faccio, scusa ma ho tanto lavoro da fare...

    Database:
    - mario rossi
    - marco rovi
    - lucia bianchi

    se cerchi:
    "mario rossi", ti trova esattamente quelli che si chiamano "mario rossi", se cerchi "ma ro" ti trova:
    marco rossi e marco rovi

    se cerchi "luca rossi" ti trova sia lucia bianchi e mario rossi.

  5. #35
    Quote Originariamente inviata da optime Visualizza il messaggio
    devi deciderti: o cerchi in OR le singole parole (e quindi esce tutto) oppure cerchi il nome preciso (con i limiti che tu stesso hai detto non essere accettabili).

    puoi anche fare due campi di input
    1. ricerca 'ndo cojo cojo (tutto in or/like)
    2. ricerca esatta

    Ho risolto

    Quote Originariamente inviata da badaze Visualizza il messaggio
    @supersqualo.

    Dire che con un numero d'ordine tutto sarebbe così semplice !

    A proposito. Hai pensato alle minuscole e maiuscole ?
    Esempio : ROSSI nella tabella e Rossi nel campo input.
    Certo
    E' l'ultima che faccio, scusa ma ho tanto lavoro da fare...

    Database:
    - mario rossi
    - marco rovi
    - lucia bianchi

    se cerchi:
    "mario rossi", ti trova esattamente quelli che si chiamano "mario rossi", se cerchi "ma ro" ti trova:
    marco rossi e marco rovi

    se cerchi "luca rossi" ti trova sia lucia bianchi e mario rossi.


    Ringrazio tutti per la disponibilità (anche per chi ha risposto non concretamente). Zacca non smetterò mai di ringraziarti per quello che hai fatto

    Ho risolto cosi

    Codice PHP:
     <!doctype html><html><head><meta charset="utf-8"><title>Ricerca</title></head><body><?php
    include('./config.php');
    $name = isset($_POST['ricerca']) ? preg_replace('/\s+/'' 'trim($_POST['ricerca'])) : '';
    if (
    $name != '') {$parts explode(" ",$name);
    $count count($parts);
    $q "SELECT * FROM Prenotazioni WHERE";                     
    for(
    $i 0;$i $count;$i++){    if($i != $count-1)        $q $q.        " (nome LIKE '%".$parts[$i]."%' OR          cognome LIKE '%".$parts[$i]."%') AND ";    else        $q $q.        " (nome LIKE '%".$parts[$i]."%' OR          cognome LIKE '%".$parts[$i]."%')";}$exec mysql_query($q);    if (mysql_num_rows($exec)) {        echo '<tr>                <td width="242">                    <table border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">                        <tr></tr>                        <tr>                            <td align="center" bgcolor="#FFFFFF"><strong>Nome</strong></td>                            <td align="center" bgcolor="#FFFFFF"><strong>Cognome</strong></td>                        </tr>';                                while($row mysql_fetch_array($exec)) {            echo '<tr>                    <td align="center" bgcolor="#FFFFFF">' $row['nome'] . '</td>                    <td align="center" bgcolor="#FFFFFF">' $row['cognome'] . '</td>                </table>                 <p><br>                   <br>';        }    }    else {        echo 'Errore: nessuna corrispondenza trovata.';    }    }else {    echo 'Errore: Inserisci un nome.';}?></body></html>

  6. #36
    .

  7. #37
    codice:
     <!doctype html><html>
    <head>
    <meta charset="utf-8">
    <title>Ricerca</title>
    </head>
    <body>
    <?php
    
    
    include('./config.php');
    
    
    $name = isset($_POST['ricerca']) ? preg_replace('/\s+/', ' ', trim($_POST['ricerca'])) : '';
    
    
    if ($name != '') {
    $parts = explode(" ",$name);
    
    
    $count = count($parts);
    
    
    $q = "SELECT * FROM Prenotazioni WHERE";                     
    
    
    for($i = 0;$i < $count;$i++)
    {
        if($i != $count-1)
            $q = $q.
            " (nome LIKE '%".$parts[$i]."%' OR
              cognome LIKE '%".$parts[$i]."%') AND ";
        else
            $q = $q.
            " (nome LIKE '%".$parts[$i]."%' OR
              cognome LIKE '%".$parts[$i]."%')";
    }
    $exec = mysql_query($q);
        if (mysql_num_rows($exec)) {
            echo '<tr>
                    <td width="242">
                        <table border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
                            <tr></tr>
                            <tr>
                                <td align="center" bgcolor="#FFFFFF"><strong>Nome</strong></td>
                                <td align="center" bgcolor="#FFFFFF"><strong>Cognome</strong></td>
                            </tr>';
                            
            while($row = mysql_fetch_array($exec)) {
                echo '<tr>
                        <td align="center" bgcolor="#FFFFFF">' . $row['nome'] . '</td>
                        <td align="center" bgcolor="#FFFFFF">' . $row['cognome'] . '</td>
                    </table>
                     <p><br>
                       <br>';
            }
        }
        else {
            echo 'Errore: nessuna corrispondenza trovata.';
        }
        
    }
    else {
        echo 'Errore: Inserisci un nome.';
    }
    ?>
    </body>
    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.