Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 37

Discussione: Query di ricerca

  1. #21
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    @supersqualo.

    Per fortuna per te non lavori per me.
    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

  2. #22
    Quote Originariamente inviata da badaze Visualizza il messaggio
    @supersqualo.

    Per fortuna per te non lavori per me.
    Accetto consigli... come risolveresti senza dover dare nulla al cliente? Ripeto il piu delle volte vengono parenti... ovviamente potrei registrare qualunque altro dato... cercando sempre di semplificare e non rallentare il lavoro..
    Ultima modifica di supersqualo; 16-08-2017 a 23:28

  3. #23
    WHERE CONCAT(f_name, ' ', l_name) LIKE '%$search%'
    Qualcosa del genere potrebbe essere d aiuto?

  4. #24
    Ho trovato questa discussione:
    https://stackoverflow.com/questions/5893506/php-search-first-name-and-last-name


    Cosa ne pensate di questo:
    Codice PHP:

    <?php

    $fullName 
    "Chris Olson";
    $names_exploded explode(" "$fullName);   // will split " " (a space!)

    counter_words 0;

    foreach(
    $names_exploded as $each_name){
        
    $counter_words++;

    /* check the word count */
    if($counter_words == 1){
        
    $qPart .= " `f_name` LIKE '%$each_name%' OR `l_name` LIKE '%$each_name%'";
    }else{
        
    $qPart .= " OR `f_name` LIKE '%$each_name%' OR `l_name` LIKE '%$each_name%'";
    }

    }

    $q mysql_query("ELECT * FROM `glnce_users` WHERE $qPart");
    while(
    $r mysql_fetch_assoc($q)){
       
    // get your data here!
    }

    ?>

  5. #25
    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

    include('./config.php');

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

    if (
    $name != '') {
        
    $q 'SELECT * FROM prenotazioni WHERE 1=2';
        
    $part explode(' '$name);
        
        foreach (
    $name as $part) {
            
    $q .= ' OR nome LIKE \'%' $part '\' OR cognome LIKE \'%' $npartame '\'';
        }
        
        
    $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. #26
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Ho fatto degli errori e siccome il forum è buggato da far schifo quando si tratta di modifiche, posto il codice aggiornato:

    Codice PHP:
     <!doctype html><html>
    <head>
    <meta charset="utf-8">
    <title>Ricerca</title>
    </head>
    <body>
    <?php

    include('./config.php');

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

    if (
    $name != '') {
        
    $q 'SELECT * FROM prenotazioni WHERE 1=2';
        
    $parts explode(' '$name);
        
        foreach (
    $parts as $part) {
            
    $q .= ' OR nome LIKE \'%' $part '\' OR cognome LIKE \'%' $npartame '\'';
        }
        
        
    $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>

  7. #27
    Hai ragione...è divertente vedere come un forum di programmazione abbia queste lacune ma tutto sommato credo che sia voluta la non cancellazione dei post e la non possibilità di modifiche dopo un po di tempo... Comunque non smetterò mai di ringraziarti...appena posso lo testo... ma levami una curiosità questo andrà bene anche se inserissi + di 3 termini?
    Ultima modifica di supersqualo; 17-08-2017 a 20:15

  8. #28
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    $q .= ' OR nome LIKE \'%' . $part . '\' OR cognome LIKE \'%' . $npartame . '\'';
    correggi questa riga con questa:
    $q .= ' OR nome LIKE \'%' . $part . '\' OR cognome LIKE \'%' . $part . '\'';


    ma levami una curiosità questo andrà bene anche se inserissi + di 3 termini
    teoricamente si, praticamente non l'ho testato.

    Poi le tabelle hanno la tua formattazione (sbagliata) infatti secondo me vedrai tutto sballato.

  9. #29
    Quote Originariamente inviata da zacca94 Visualizza il messaggio
    $q .= ' OR nome LIKE \'%' . $part . '\' OR cognome LIKE \'%' . $npartame . '\'';
    correggi questa riga con questa:
    $q .= ' OR nome LIKE \'%' . $part . '\' OR cognome LIKE \'%' . $part . '\'';



    teoricamente si, praticamente non l'ho testato.

    Poi le tabelle hanno la tua formattazione (sbagliata) infatti secondo me vedrai tutto sballato.
    Non funziona...non trova niente (Errore: Inserisci un nome.)
    La formattazione è cosi solo perchè ho preso una pagina che già avevo con una semplice query di ricerca che funzionava...ovviamente una volta che la query funzionerà aggiusterò il tutto ... ma purtroppo non funziona... ma correggimi se sbaglio...
    isset($_POST['name'])
    non è sbagliato?
    Secondo me la soluzione sta nell'esplodere le parole e poi concatenarle... Ripeto non sono molto capace (non so nemmeno correggere quello che non va in quello che ha fatto zacca) la mia è solo un'idea
    Ultima modifica di supersqualo; 17-08-2017 a 21:35

  10. #30
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    si sostituiscilo con
    isset($_POST['ricerca'])

    In locale l'ho provato e funziona:
    codice:
    matias@matias-desktop:~$ mysql -u root -p
    Enter password: 
    
    mysql> CREATE DATABASE test;
    Query OK, 1 row affected (0,00 sec)
    
    mysql> use test;
    Database changed
    mysql> CREATE TABLE prenotazioni ( nome VARCHAR(255), cognome VARCHAR(255) );
    Query OK, 0 rows affected (0,01 sec)
    
    mysql> INSERT INTO prenotazioni VALUES ( 'Luca', 'De belli' ), ( 'xhiaun', 'zang fhan lin' ), ( 'Marco', 'Rossi' );
    Query OK, 3 rows affected (0,00 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> SELECT * FROM prenotazioni;
    +--------+---------------+
    | nome   | cognome       |
    +--------+---------------+
    | Luca   | De belli      |
    | xhiaun | zang fhan lin |
    | Marco  | Rossi         |
    +--------+---------------+
    3 rows in set (0,00 sec)
    Sorgente:
    Codice PHP:
    <!doctype html><html>
    <head>
    <meta charset="utf-8">
    <title>Ricerca</title>
    </head>
    <body>
    <?php

    $c 
    mysqli_connect('localhost''root''1q2w3e4r''test') or die(mysqli_error($link));


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

    if (
    $name != '') {
        
    $q 'SELECT * FROM prenotazioni WHERE 1=2';
        
    $parts explode(' '$name);
        
        foreach (
    $parts as $part) {
            
    $q .= ' OR nome LIKE \'%' $part '\' OR cognome LIKE \'%' $part '\'';
        }
        
        
    $exec mysqli_query($c$q);
        if (
    mysqli_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 mysqli_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.