ordine delle parole PHP, My sql

Sargon

Utente Attivo
22 Mar 2012
45
0
0
ciao a tutti,

ho un motore di ricerca mysql con interfaccia in php


nella stringa di ricerca ho utilizzato like e And per trovare due parole....

nel database ho scritto

marco manga la mela....

se sulla stringa scrivo marco e mela.... non c'è nessun problema e me lo trova.... se scrivo mela e marco... non produce risultati....

dove sta l'inghippo???
 

Sargon

Utente Attivo
22 Mar 2012
45
0
0
io da quel poco che so ...
usavo la seguente query

query= "SELECT * FROM tabella WHERE nome LIKE '%$cerca%' OR cognome LIKE '%$cerca%' OR parolechiave LIKE '%$cerca%';

mettiamo che su parole chiave scrivo autore, pittore

se voglio cercare due parole chiave faccio così credo..

query= "SELECT * FROM tabella WHERE nome LIKE '%$cerca%' OR cognome LIKE '%$cerca%' OR parolechiave LIKE '%$cerca%' OR parolechiave LIKE '%$cerca%';

se effettuo la ricerca inserendo autore e pittore me li trova.... ma se inserisco pittore ed autore non lo trova...:hammer:

c'è qualche soluzione?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
c'è qualcosa che nom mi quadra nella query
intanto da dove salta e come fuori quella variabile $cerca e perchè tieni la stessa per tutti i campi?
se hai
PHP:
$cerca ="pinco pallo pallino";
con quella query
PHP:
<?php
//...
query= "SELECT * FROM tabella WHERE nome LIKE '%$cerca%' OR cognome LIKE '%$cerca%' OR parolechiave LIKE '%$cerca%' OR parolechiave LIKE '%$cerca%'";
var_dump($query);
//..
?>
il var_dump ti restituisce
string(193) "SELECT * FROM tabella WHERE nome LIKE '%pinco pallo pallino%' OR cognome LIKE '%$pinco pallo pallino%' OR parolechiave LIKE '%$pinco pallo pallino%' OR parolechiave LIKE '%pinco pallo pallino%'"
cioe una querystringa che cerca in tutti i campi il valore "pinco pallo pallino" e solo quello
mi sbaglierò, ma sei sicuro che la querystringa non dovrebbe essere fatta così

PHP:
query= "SELECT * FROM tabella WHERE nome LIKE '%$nome%' OR cognome LIKE '%$cognome%' OR parolechiave LIKE '%$chiave_1%' OR parolechiave LIKE '%$chiave_2%'";
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Se vuoi effettuare una ricerca in tutti i campi della tabella e per tutte le parole, ti conviene strutturare il database in modo che sia FULLTEXT: https://www.mrw.it/mysql/articoli/ricerche-full-text-mysql_658.html.

In questo modo potrai fare qualcosa come:
PHP:
$query = "SELECT * FROM tabella WHERE MATCH(nome, cognome, parolechiave) AGAINST('{$cerca}')";
Senza doverti preoccupare dell'ordine delle parole.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
una domanda:

hai un solo input per la ricerca o hai un input per ogni campo della tabella?

da come scrivi sembra uno ma vorrei esserne certo

perche se la stringa è "autore, pittore" non dovresti mai avere un risultato con LIKE


cmq semmai posta anche l'echo della query

echo $query;
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
F Script non funzionante. Devo elencare in ordine alfabetico un elenco di nominativi, ma lo script non Javascript 2
Tommy03 Select in ordine per numero di record MySQL 7
M Matrice di caratteri ( inseriti da tastiera ) ordinati in ordine alfabetico C/C++ 2
felino [WordPress] [WooCommerce] Ordine: aggiungere nuovi stati con notifica email al cliente WordPress 4
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
G [HTML] Modificare ordine dei div in mobile responsive HTML e CSS 5
F [HTML] Modulo d'ordine che arriva tramite email editabile ed inviabile. HTML e CSS 6
S Inserire ordine minimo E-Commerce 3
R PROBLEMA INVIO EMAIL AL CAMBIO DI STATO ORDINE E-Commerce 1
webmachine [PRESTASHOP] Cambiare ordine prezzo-sconto-prezzoscontato E-Commerce 1
ANDREA20 [PHP] Numero ordine PHP 15
ANDREA20 [MySQL] [PHP] Invio email ordine MySQL 12
A [WordPress] Plugin gestione ordine prodotto. WordPress 0
ANDREA20 [PHP] Invio ordine via email PHP 14
webmachine [PRESTASHOP] Ordine Prodotti personalizzato E-Commerce 1
gandalf1959 Scansione di file in una directory: non sono in ordine crescente. Come mai? PHP 8
C verifica e invio ordine php PHP 19
L Ordinare articoli dentro categorie e tag in ordine alfabetico wordpress WordPress 1
felino [Wordpress] Ordine per Calendario Personalizzato WordPress 1
Shyson Stampare lista in ordine decrescente Database 1
M elementi di una gridview appaiono in ordine casuale invece di quello deciso da me Sviluppo app per Android 2
A Aiuto per ordine cronologico lista file all'interno di una cartella protetta PHP 2
K Stampa ordine Javascript 6
blips Ordine di esecuzione query PHP 3
StarFish [c++] matrice con ordine crescente C/C++ 0
Trapano [risolto] Leggere da un file txt in ordine inverso PHP 2
felino [Virtuemart] Modifica del template dell'ordine inviato dopo l'acquisto Joomla 0
P PHP modulo ricerca e ordine alfabetico PHP 5
S Ordine array bidimensionale PHP 2
ivarello Ordinare dati Var in ordine numerico PHP 9
valient13 ordinare in ordine decrescente la lista PHP 2
F ordine per data PHP 13
P ordine alfabetico A Z Classic ASP 13
M problema "Ordine del carico jquery librerie deve essere cambiato" jQuery 0
M campo ordine da modificare con form PHP 2
S ORDINE WEBMASTER - Nuovo portale per i professionisti del web Presenta il tuo Sito 7
N visualizzare foto in ordine di upload PHP 8
M modulo asp per ordine non funziona Classic ASP 6
B ordine cronologico articoli PHP 2
I Inviare due email per ordine PHP 5
LaKanka Problema query ordine di visualizzazione PHP 17
RedWolf Paginazione, ordine alfabetico e array PHP 4
K Formato misto e ordine record Database 1
A come abilitare in ordine un imput di tipo file??? Javascript 3
B collegare un utente ad un ordine PHP 0
F query per ordine alfabetico ma... PHP 1
S Selezione da ordine alfabetico per tipo Classic ASP 15
L Form Ordine (Selettore Quantità) Javascript 11
F Estrarre record in ordine casuale Classic ASP 0
A Ordine caricamento pagina web HTML e CSS 0

Discussioni simili