Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157

    Funzione select per ricerca database

    Salve a tutti.
    Per effettuare una ricerca di una parola nel mio db mysql, faccio in questo modo:

    Codice PHP:
    $search mysql_query("SELECT * FROM inserimento_dati WHERE db_nome LIKE '%$term%'" ); 
    Fin qui nessun problema.
    Ma avendo necessità di espandere la ricerca ad altri campi oltre a db_nome, come faccio a aggiungere altri campi del db? come db_categoria, db_descrizione ...
    Ho provato a concatenarli con una virgola ma da errore.
    Ho anche provato a cancellare tutto dopo il nome della tabella lasciando il LIKE e la variabile, sperando che cercasse in tutti i campi del db, ma non funziona.

    Seconda domanda.
    All'interno della mia input box, attraverso il comando value ho scritto "cerca". Come posso fare per far cancellare la scritta cerca nel momento in cui si clicca all'interno per editare?
    Grazie a tutti!!!!!!!!

  2. #2
    Codice PHP:
    $sql "
    SELECT * 
    FROM inserimento_dati 
    WHERE db_nome LIKE '%
    $term%'
    AND db_categoria LIKE '%
    $term%'
    AND db_descrizione LIKE '%
    $term%'
    "

    Non è il modo migliore per estendere una ricerca ma così dovrebbe funzionare.
    Prova a cercare nel forum la pillola sulle ricerche FULLTEXT.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    ciao..
    mettendo AND la ricerca darà il risultato se quell'elemento da cercare si trova in tutte e tre le tabelle.
    mettendo OR in questo caso farà il controllo e darà il risultato anche se l'elemento da cercare si trova in una sola tabella o + tabelle

    Codice PHP:
    $sql 
    SELECT * FROM inserimento_dati  
    WHERE (db_nome LIKE '%
    $term%' 
    OR db_categoria LIKE '%
    $term%' 
    OR db_descrizione LIKE '%
    $term%') 
    "

    DigitalWeb Italia - 333.7806821 / info@digitalwebitalia.it

  4. #4
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157
    Grazie teck2010, consiglio molto utile.

    O fatto come ha consigliato alcio74 e cercando la parola FULLTEXT ho trovato una discussione nel forum con un link a quasta guida: http://www.codicefacile.it/tutorial...cerca_full-text .

    Di conseguenza ho fatto così:

    Codice PHP:
    ALTER TABLE inserimento_dati ADD FULLTEXT(db_categoriadb_nomedb_localita); 
    ci ho messo un bel po a capire che questo codice andava inserito nel pannello MyAdmin e non nel php.

    poi
    Codice PHP:
    $search mysql_query("SELECT *, MATCH(db_categoria, db_nome, db_localita) AGAINST('$term') AS attinenza FROM inserimento_dati WHERE MATCH(db_categoria, db_nome, db_localita) AGAINST('$term') ORDER BY attinenza DESC" ); 
    qui sono andato un po a tentativi. Non ho ben capito se quel attinenza
    Codice PHP:
    attinenza 
    è un parametro da personalizzare o deve restare così.

    Secondo voi il resto del codice l'ho personalizzato correttamente?
    Funzionare funziona, riesco a trovare parole nelle tre categorie selezionate.

    Rimane un problema: nelle ricerca del campo db_categoria restituisce il valore cercato solo in alcuni casi, altre parole presenti nel db di questo campo non vengono trovate, anche se presenti.
    Cosa può essere successo?

  5. #5
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157
    nessun consiglio?

  6. #6
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    725
    Intanto attinenza puoi cambiarlo, as attinenza significa che quel risultato verra mostrato sotto il nome di attinenza. Però non ho capito che vuoi fare.
    Se devi cercare in piu campi un termine cerca come indicato prima
    codice:
    $sql = "
    SELECT * 
    FROM inserimento_dati 
    WHERE db_nome LIKE '%$term%'
    AND db_categoria LIKE '%$term%'
    AND db_descrizione LIKE '%$term%'
    ";
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  7. #7
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157
    ok, ma come consigliato da alcio74 e dalla guida http://www.codicefacile.it/tutorial...cerca_full-text
    ho intrapreso la via del fulltext.

    Come ho detto funziona tutto tranne:

    1) alcune parole del campo db_categoria non vengono trovate.

    2) nella variabile di ricerca $term ho aggiunto i valori jolly *$term* che dovrebbero avere la stessa funzione dei %$term%, ma non funzionano.

  8. #8
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157
    ... se nessuno sa come risolvere i problemi del MATCH e AGAINST, devo ritornare ritorno al AND e LIKE

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 © 2025 vBulletin Solutions, Inc. All rights reserved.