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.
 
ciao
se non ho capito male ($specializzazioni è un array?), prova così
PHP:
<?php
//....
	$query1 = "AND competenze IN('". implode("','",$specializzazioni)."'"; 
//....
?>
al massimo non funziona
 
Grazie borgo italia,

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

Confermo che è un array
 
Ciao Marino51,
grazie, ma non è così semplice, non basta sostituire and con or, siamo all'interno di array.
 
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
 
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