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.046
150
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.046
150
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
max75 query su due tabelle e dati doppioni MS Access 2
E Aiuto per query PHP 8
E Query differenza tra tabelle MySQL 5
E Query Alias PHP 4
T Query con date MS Access 1
K Inserimento query Errore 1366 PHP 4
L Query e selezione DB con $_POST PHP 2
M query update e delete PHP 0
A media degli elementi estratti da una query MySQL 0
S Passare query o utm alla pagina successiva Domini 1
O problema con query PHP 4
M Query PHP 8
R query DELETE non cancella i record PHP 1
G Query con i giorni della settimana MySQL 10
E Query annidate o cicli MySQL 1
C bottone query MySQL 0
T Query su due tabelle con totali Database 4
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 27
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
M Visualizzazione a video risultati query php PHP 0
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
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1

Discussioni simili