ciao a tutti...
sto sviluppando una web app per un laboratorio di analisi. Il problema è che hoc reato una funzione di ricerca libera in alcune tabelle, ad esempio quella clienti. Poichè la ricerca libera deve essere effettuata su tutti i campi della tabella ho creato una funzione di classe che preleva dalle tabelle di sistema i nomi dei campi mettendoli in un array e li usa poi in un ciclo FOREACH epr costruire la query di ricerca libera, come nel codice seguente:
ma la query non viene eseguita per un misterioso errore di sintassi "ORSELECT * FROM anaclienti WHERE" ecc !!! come fa ad apparire un OR all'inizio della query???Codice PHP:
// TESTO contiene il testo da cercare liberamente in tutta la tabella
$param = "%" . urldecode($_REQUEST['testo']) . "%";$sql = "SELECT * FROM anaclienti WHERE";
// crea un array coi nomi dei campi della tabella scelta
$fields = $cliente->getFieldsTableNames("anaclienti");
foreach ($fields as $field)
$sql .= " LOWER(CONVERT(" . $field['Field'] . " USING utf8mb4)) LIKE '" . $param . "' OR";
$sql .= substr($sql, 0, strlen($sql) - 3);
// crea un array di record
$rows = $cliente>arrayRecords($sql);