Query string

piero60

Utente Attivo
26 Gen 2015
71
2
8
Salve a tutti
Avrei bisogno di un aiuto, io eseguo questa query

PHP:
if ($_GET['categoria']) {
	if ($specializzazioni) {
		$query1 = "AND competenze LIKE '%$specializzazioni%'";
	}

Tutto funziona perfettamente fino a quando tutte le parole inserite
per la ricerca esistono tutte.
Esempio, pippo,pluto,pinco,paperino

Se dalla ricerca viene solamente tolta una di queste parole non
ho più corrispondenza e nel database non trovo nulla.

Come posso eseguire la query facendo in modo che se anche una sola delle
parole inserite nell'array di ricerca viene trovata mi venga restituito ciò che
il campo contiene.

In poche parole attualmente deve corrispondere esattamente tutto ciò che viene
inserito nel campo di ricerca perchè i dati vengano trovati.

Il campo del database è un varchar e le varie parole vengono inserite separate
da una virgola

Grazie per l'aiuto.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se non ho capito male ($specializzazioni è un array?), prova così
PHP:
<?php
//....
	$query1 = "AND competenze IN('". implode("','",$specializzazioni)."'"; 
//....
?>
al massimo non funziona
 

piero60

Utente Attivo
26 Gen 2015
71
2
8
Grazie borgo italia,

purtroppo non funziona, con questa istruzione non trova nemmeno la stringa esatta.

Confermo che è un array
 

piero60

Utente Attivo
26 Gen 2015
71
2
8
Ciao Marino51,
grazie, ma non è così semplice, non basta sostituire and con or, siamo all'interno di array.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
altro tentativo, sempre da provare
PHP:
<?php
//.....
if(is_array($specializzazioni)){//es $specializzazioni = array ('pinco', 'pallo', 'sempronio')
	$query1 = "";
	$q="";
	foreach($specializzazioni as $sp){
		$q .=" competenze LIKE '%$sp%' OR";
	}
	/*
	al termine del forech
	$q = " competenze LIKE '%pinco%' OR competenze LIKE '%pallo%' OR competenze LIKE '%sempronio%' "
	*/
	$query1 = " AND ( $q 1=2) ";
	//$query1 = " AND ( competenze LIKE '%pinco%' OR competenze LIKE '%pallo%' OR competenze LIKE '%sempronio%' OR 1=2 ) "
	//1=2 mai vera quindi come se non ci fosse, per evitare di togliere l'ultimo OR
}
//.....
?>
e stesso commento finale
 

piero60

Utente Attivo
26 Gen 2015
71
2
8
Risolto,
grazie a tutti, ho inserito tutte le voci di ricerca possibili nel database, non volevo farlo perchè sono più di 100 e poi
costringo l'utente a sceglierne obbligatoriamente una.
Così facendo posso associare sempre una voce certa alla ricerca per quel tipo di campo.
Volevo lasciare spazio agli utenti per inserire nuove voci specialistiche, lo farò in un secondo tempo appena
potrò dedicare tampo per implementare un sistema di ricerca efficace.

Ancora grazie a tutti.
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] query string PHP 2
O Modificare query string senza refresh di pagina PHP 7
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 26
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
Alex_70 Query group actor e film PHP 26
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3
Tommy03 Query tra 3 tabelle MySQL 2
P Query di ricerca profonda MySQL 0
T Query per ricerca ritardo evento MS Access 7
max1974 2 query not work MySQL 3
M Ottimizzazione Query PHP 8
strambotto Query di aggiornamento MS Access 0
I Aiuto query MySQL 8
J [PHP] Visualizzare risultato query stessa pagina PHP 3
S [PHP] non prende la query PHP 0
D [PHP] Query che aggiorna tabella PHP 4
A [PHP] Problema query insert [RISOLTO] PHP 14
M [PHP] Ottimizzazione query PHP 13
S [PHP] la query fallisce PHP 2
Alex_70 actor film query per php PHP 1
Tommy03 [PHP] Media valori presi da una query PHP 3
Punix [PHP] query non valida PHP 1
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3

Discussioni simili