APPUNTI

Modulo di ricerca di un input su tabelle concatenate

Mi sono imbattuto nella necessità di effettuare una ricerca concatenate su tabelle wodpress e dopo qualche minuto ho partorito il topolino in php 🙂

global $wpdb; // carico le variabili globali di wp per il collegamento al db
$tabpost=$wpdb->prefix."posts", tabmeta=$wpdb->prefix."postmeta"; // imposto il nome delle tabelle
$ricerca="rossi"; // la mia ricerca 
// preparo la stringa SQL da eseguire
stringa_sql ="
SELECT 
	post.ID, 
	data.meta_value, 
	tel.meta_value,
	nom.meta_value, cog.meta_value
FROM $tabpost AS post
	INNER JOIN $tabmeta AS data ON (post.ID = data.post_id AND data.meta_key = 'nascita')
	INNER JOIN $tabmeta AS tel ON (post.ID = tel.post_id AND tel.meta_key = 'telefono')
	INNER JOIN $tabmeta AS nom ON (post.ID = nom.post_id AND nom.meta_key = 'nome')
	INNER JOIN $tabmeta AS cog ON (post.ID = cog.post_id AND cog.meta_key = 'cognome')
	WHERE post.post_type='cliente' and post.post_status='publish' 
	AND (data.meta_value LIKE '%". ricerca."%'
		OR tel.meta_value LIKE '%".$ricerca."%' OR nom.meta_value LIKE '%". $ricerca."%' OR cog.meta_value LIKE '%". $ricerca."%' OR CONCAT(nom.meta_value,' ', cog.meta_value) LIKE '%".$ricerca."%' OR CONCAT(cog.meta_value,' ', nom.meta_value) LIKE '%".$ricerca."%' OR
		post.ID = '".$_REQUEST['ricerca']."'
		)
	
	ORDER BY post.ID
";

$wpdb->show_errors(); // mi preparo a memorizzare eventuali errori
$my_ricerca= $wpdb->get_results($stringa_sql); // eseguo la stringa SQL
$wpdb->print_error(); 
print_r($my_ricerca); // leggo a video array generato
// volendo posso impostare un ciclo foreach per lavorare i record
foreach ($my_ricerca as $nominativo){
   //... leggo i campi dell'array
}

Su questo sito utilizziamo cookie tecnici necessari alla navigazione e funzionali all’erogazione del servizio. Utilizziamo i cookie anche per fornirti un’esperienza di navigazione sempre migliore, per facilitare le interazioni con le nostre funzionalità social e per consentirti di ricevere comunicazioni di marketing aderenti alle tue abitudini di navigazione e ai tuoi interessi.

Puoi esprimere il tuo consenso cliccando su ACCETTA TUTTI I COOKIE. Chiudendo questa informativa, continui senza accettare.

Potrai sempre gestire le tue preferenze accedendo al nostro COOKIE CENTER e ottenere maggiori informazioni sui cookie utilizzati, visitando la nostra COOKIE POLICY.

Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.


I cookie tecnici sono necessari al funzionamento del sito web perché abilitano funzioni per facilitare la navigazione dell’utente, che per esempio potrà accedere al proprio profilo senza dover eseguire ogni volta il login oppure potrà selezionare la lingua con cui desidera navigare il sito senza doverla impostare ogni volta.

Rifiuta tutti i Servizi
Accetta tutti i Servizi