[PHP] Query per ricercare stringa in più colonne

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Un buongiorno a tutti,
ho una tabella con diversi campi all'interno, avrei la necessità di scrivere una query php che mi dia la possibilità di ricercare la presenza di una determinata stringa passata via post in una o più colonne della tabella

Avevo provato a scrivere la query in questo modo:

PHP:
$query = "SELECT * FROM Commesse WHERE targa LIKE '$targa' AND itr1 LIKE '%$intervento%' OR itr2 LIKE '%$intervento%' OR itr3 LIKE '%$intervento%' OR itr4 LIKE '%$intervento%'";

questa la form da cui recupero i campi tramite post:

HTML:
<fieldset>
<legend>Ricerca Commessa</legend>
<table id="add">
<tr>
<td><b>Targa</b></td>
<td><input type="text" name="targa" required = "required"></td>
</tr>
<tr>
<td><b>Intervento</b></td>
<td><input type="text" name="intervento"></td>
</tr>
</table>
</fieldset>

In sostanza tramite un form passo parte della targa oppure la targa intera e chiedo alla query di controllare nella tabella se per quella targa esistono una o più commesse che nei campi interventi itr* contiene la stringa oli

La query cosi come scritta estrae tutti i record del db e non tiene in considerazione ne la targa ne tantomeno gli interventi :(
 
Ultima modifica:

elpirata

Utente Attivo
18 Mar 2009
264
7
18
ciao
metti % anche a targa


Ciao borgo italia,
buongiorno e grazie per la risposta

allora ho effettuato la correzione proposta, da stupido che sono ho messo una clausola LIKE ma non le %, vabbe ...

questo il var_dump della query che viene eseguita: (mi vengono restituiti tutti i record della tabella)

PHP:
string(160) "SELECT * FROM CommesseOfficina WHERE targa LIKE '%FF123%' AND itr1 LIKE '%oli%' OR itr2 LIKE '%oli%' OR itr3 LIKE '%oli%' OR itr4 LIKE '%oli%' ORDER BY data ASC"

la tabella è cosi strutturata :

cliente|targa|itr1|itr2|itr3|itr4|itr5|ecc ecc
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Riporto di seguito la struttura della tabella,
nella speranza di riuscire a strutturare la giusta query:

Codice:
CREATE TABLE IF NOT EXISTS `Commesse` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `veicolo` varchar(30) DEFAULT NULL,
  `targa` varchar(10) DEFAULT NULL,
  `km` varchar(50) DEFAULT NULL,
  `telaio` varchar(30) DEFAULT NULL,
  `cliente` varchar(50) DEFAULT NULL,
  `indirizzo` varchar(50) DEFAULT NULL,
  `piva` varchar(12) DEFAULT NULL,
  `tel` varchar(30) DEFAULT NULL,
  `itr1` varchar(70) DEFAULT NULL,
  `itr2` varchar(70) DEFAULT NULL,
  `itr3` varchar(70) DEFAULT NULL,
  `itr4` varchar(70) DEFAULT NULL,
  `itr5` varchar(70) DEFAULT NULL,
  `itr6` varchar(70) DEFAULT NULL,
  `itr7` varchar(70) DEFAULT NULL,
  `itr8` varchar(70) DEFAULT NULL,
  `itr9` varchar(70) DEFAULT NULL,
  `itr10` varchar(70) DEFAULT NULL,
  `itr11` varchar(70) DEFAULT NULL,
  `itr12` varchar(70) DEFAULT NULL,
  `itr13` varchar(70) DEFAULT NULL,
  `itr14` varchar(70) DEFAULT NULL,
  `itr15` varchar(70) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
 

marino51

Utente Attivo
28 Feb 2013
3.046
192
63
Lombardia
la tua query manca di una coppia di parentesi tonde,
PHP:
SELECT * FROM Commesse
WHERE targa LIKE '%FF123%'
AND (itr1 LIKE '%oli%' OR itr2 LIKE '%oli%' OR itr3 LIKE '%oli%' OR itr4 LIKE '%oli%')
ORDER BY data ASC
ma rispetto al tuo ultimo post, il nome della tabella non coincide e la colonna "data" non esiste
 

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Grazie al vostro prezioso supporto sono riusciuto a scrivere la query e risolvere il problema, riporto la query utilizzata nella speranza che possa tornare utile a qualche altro collega.

Codice:
$query = "SELECT * FROM Commesse WHERE `targa` LIKE '%$targa%' AND (`itr1` LIKE '%$intervento%' OR `itr2` LIKE '%$intervento%' OR `itr3` LIKE '%$intervento%' OR `itr4` LIKE '%$intervento%' OR `itr5` LIKE '%$intervento%' OR `itr6` LIKE '%$intervento%' OR `itr7` LIKE '%$intervento%' OR `itr8` LIKE '%$intervento%' OR `itr9` LIKE '%$intervento%' OR `itr10` LIKE '%$intervento%')";
 
Discussioni simili
Autore Titolo Forum Risposte Data
Alex_70 actor film query per php PHP 1
G [PHP] Selezionare OGGI anno precedente per query sql PHP 2
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
Trapano Query in php come ordinare per data e anche per ora PHP 7
K query per popolare una select tramite ajaxc php e xml ! Ajax 14
K creare uno script in php , per generare in modo automatico query PHP 2
EffeElle Problema per una query di aggiornamento record php PHP 35
Z query sql e script php per ordinamento dati tabella PHP 2
A form PHP prenotazione tramite query PHP 2
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
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
M [PHP] Problema con query select PHP 2
M [PHP] Problemi con query unione PHP 11
D [PHP] Query in OOP class PHP 0
L [PHP] IF con risultato query PHP 7
M [PHP] query string PHP 2
T [php] problema creazione query select-where PHP 5
B [PHP] IF condizioni e query annidate PHP 1
M [PHP] [SOLVED] While query result PHP 11
P [PHP] PEAR Mail e Query PHP 3
Tommy03 [PHP] Errore query selezione avg PHP 0
Monital [PHP] query update e select insieme ma frazionando l'arrray PHP 12
trattorino problema raccapricciante php conteggio query PHP 4
G [PHP] Oracle, convertire una query multiline in Json PHP 3
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0
A [PHP] Undefined index dopo query dal server PHP 1
L [PHP] risultato query in percentuale PHP 1
L [PHP] Nuovo server, query non funzionano PHP 3
G [PHP] inserire risultato di una query in una tabella PHP 3
G [PHP] operazione matematica tra risultati di query PHP 5
P [PHP] Query con variabile PHP 2
G [PHP] convertire data in formato italiano dopo query PHP 6
T PHP: aggiunta a query che non so fare... PHP 2
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
L [PHP] Problema creazione query a numero di parametri variabile PHP 6
bubino8 [PHP] Query syntax error PHP 6
simgia [PHP] Ciclare una query JOIN PHP 2
R [PHP] Estrapolare dati da una query left join PHP 0
C Php/Mysql query JOIN tra tabelle PHP 4
MikSkagit [PHP] Risultato in una sola query PHP 16
C Php/Mysql query JOIN tra due tabelle PHP 18
Laskot Query al DB con php (INSERT) PHP 2
S [PHP] Più fetch_array con unica query... PHP 9

Discussioni simili