Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente bannato
    Registrato dal
    Dec 2010
    Messaggi
    297

    cercare 2 parole da un campo input

    Salve vi espongo il mio problema

    vorrei che da un campo <input type"text">, inserendo 2 parole ad esempio mario rossi

    mi deve ricercare nel database non la stringa "mario rossi" ma le stringe "mario" "rossi"

    di cui la prima nel campo nome del db e la seconda nel campo cognome


    ho fatto un explode ma non mi fa la ricerca precisa o meglio mi stampa un altra parola

    vi posto il codice

    codice:
     
    <?php
    
    $findme = $_POST['findme']; 
    
    
    
     require_once('../Connections/connessione.php'); 
    
    global $connessione; 
    $sql = "SELECT id, nome, cognome, immagine FROM users WHERE (cognome  LIKE '%$findme%') or (nome  LIKE '%$findme%')"; 
    $result = mysql_query($sql, $connessione); 
    
    $ArrayRisultati=explode(" ",$findme); 
    while ($risultati = mysql_fetch_array ($result)){ 
        array_push($ArrayRisultati,$risultati) ; 
    } 
    
    echo "<ul>"; 
    for($a=0;$a<count($ArrayRisultati);$a++){ 
        echo "[*]". "<img src=\"../imm/show.php?id=".$ArrayRisultati[$a]['id']. "\" width=\"50\" height=\"50\"> " . $ArrayRisultati[$a]['nome']. " " . $ArrayRisultati[$a]['cognome'].""; 
    	
    } 
    echo "[/list]";
    
    
    
    ?>

    qualcuno puo' aiutarmi? non so se mi sono spiegato bene
    se vi servono altre info chiedetemi pure
    grazie a tutti

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    E' abbastanza normale che non funzioni, hai detto di voler fare una cosa ed hai scritto il codice per farne un'altra.

    L'explode devi farlo prima di effettuare la query, messo dove l'hai messo tu non serve a niente.

    Codice PHP:
    $dati explode(" ",$_POST['findme']);
    $sql "SELECT id, nome, cognome, immagine FROM users WHERE (cognome  LIKE '%".$dati[0]."%') or (nome  LIKE '%".$dati[1]."%')"
    Ovviamente se sei sicuro che chi compilerà il campo scriverà prima il cognome e poi il nome

  3. #3
    Originariamente inviato da Alhazred
    Ovviamente se sei sicuro che chi compilerà il campo scriverà prima il cognome e poi il nome
    Riguardo a questo io preferisco sempre separare i campi nome e cognome, per evitare che un utente non troppo attento nel compilare il form non li inverta.

    Questa è solo una mia opinione, poi ognuno fa come crede meglio.
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


  4. #4
    Utente bannato
    Registrato dal
    Dec 2010
    Messaggi
    297
    grazie Alhazred

    un ultima cosa vorrei chiederti

    questa parte qui (cognome LIKE '%".$dati[0]."%') or (nome LIKE '%".$dati[1]."%')

    sembra non funzionare cioè devo per forza scrivere tutto il cognome affinchè mi esce il risultato, ma non dovrebbe uscire anche se metto solo le iniziali?

  5. #5
    Utente bannato
    Registrato dal
    Dec 2010
    Messaggi
    297
    scusami ho detto una baggianata funziona grazie

  6. #6
    Utente bannato
    Registrato dal
    Dec 2010
    Messaggi
    297
    non riesco a implementare link con questa query

    $sql = "SELECT *, MATCH(nome,cognome) AGAINST ( '$findme' IN BOOLEAN MODE) AS tot FROM users WHERE MATCH(nome,cognome)
    AGAINST ( '$findme' IN BOOLEAN MODE) ORDER BY tot DESC
    ";


    quest'altra a funzionare funziona però devo inserire tutto il nome , mentre con le iniziali non cerca
    ho provato a mettere il like da qualche parte ma non funziona...non saprei proprio piu' dove metterlo

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    cona la ricerca MATCH AGAINST la parola deve avere almeno 3 lettere.. di default è così sui DB..
    mi pare che l'equivalente del % qua è l'asterisco.. *

  8. #8
    Utente bannato
    Registrato dal
    Dec 2010
    Messaggi
    297
    te la posso dire una cosa?
    sei un grande
    grazie
    mi hai risolto in un attimo 2 giorni di scimunimenti
    grazie ancora ciao

  9. #9
    Utente bannato
    Registrato dal
    Dec 2010
    Messaggi
    297
    visto che mi trovo vorrei chiederti un ultima cosa
    guarda questo codice
    codice:
    echo "<ul>"; 
    for($a=0;$a<count($ArrayRisultati);$a++){ 
        echo "[*]". "<a href=\"home_visit.php?id=".$id."\"><img src=\"../imm/show.php?id=".$ArrayRisultati[$a]['id']. "\" width=\"50\" height=\"50\"> " . $ArrayRisultati[$a]['nome']. " " . $ArrayRisultati[$a]['cognome']."</a>"; 
    	
    } 
    echo "[/list]";

    non riesco a togliere <ul> e[*]
    mi da problemi nella visualizzazione le ho provate tutte.

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ..figurati..

    Codice PHP:
    for($a=0;$a<count($ArrayRisultati);$a++){ 
        echo 
    "<a href=\"home_visit.php?id=".$id."\"><img src=\"../imm/show.php?id=".$ArrayRisultati[$a]['id']. "\" width=\"50\" height=\"50\"> " $ArrayRisultati[$a]['nome']. " " $ArrayRisultati[$a]['cognome']."</a>";

    ..così?? però probabile che non ti si visualizza bene perchè ci sono dei CSS associati..

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.