problema con confronto dati

davidedavide

Nuovo Utente
14 Mag 2014
1
0
0
Buonasera a tutti,
questo è il mio primo post in questo blog

sono quasi nuovo di mysql,
vi spiego il mio problema,
io dovrei creare un sistema per controllare in base agli ingredienti disponibili quali pizze posso fare e quali no,

ho una tabella pizze dove ci sono segnati gli ingredienti per ciascuna pizza:

id_pizza= 1
ingr_1= pomodoro
ingr_2= prosciutto crudo

id_pizza=2
ingr_1=mozzarella
ingr_2=funghi
ingr_3=pancetta


da un form ho la lista di checkbox degli ingredienti che devo spuntare,
PHP:
<?php

	include "gestione_DB_NEW.php";

	$sql="SELECT `nome_ingrediente` FROM `P_ingredienti` ORDER BY P_ingredienti.`nome_ingrediente` ASC";

	$recordset= dammirighe($sql);

	echo '<form action="trova_pizze.php" method="post">';
	echo "<legend>Scegli gli ingredienti disponibili:</legend><br>";
 
	foreach ($recordset as $riga) {
		foreach ($riga as $campo => $valore_campo) {
			
			echo '<input type="checkbox" name="ingredienti[]" value="'.$valore_campo.'"/> '.$valore_campo;
			echo "<br />";	
		}
	}
	
	echo '<INPUT type="submit" value="Trova pizze">';
	echo "</form>";

?>

adesso però non riesco a capire come interrogare il database per fare in modo che mi restituisca SOLO le pizze i cui gusti siano TUTTI disponibili

vi ringrazio anticipatamente
ciao Davide
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
cioa
prova una cosa del genere
intanto devi trasmettere anche il nome del campo correlato all'ingrediente, es. concatenando il nome campo col suo valore tramite il carattere |
PHP:
<?php
//.....
 foreach ($recordset as $riga) {
        foreach ($riga as $campo => $valore_campo) {
            echo '<input type="checkbox" name="ingredienti[]" value="'$campo.'|'.$valore_campo.'"/> '.$valore_campo;
            echo "<br />";    
        }
    } 
//.....
?>
poi nella pag. trova_pizze.php
PHP:
<?php
//.....
$ingredienti=$_POST['ingredienti'];//leggi quanto inviato
$wh="WHERE ";//inizializzi la variabile
foreach($ingredienti as $incrediente){
	$val=explode("|", $incrediente);
	$wh.=" ".$val[0]."=\"".$val[1]."\" AND ";//concateni in modo da otenere il WHERE della select
}
$wh.="1=1";//per evitare di togliere l'ultimo AND
/*
la variabile $wh alla fine risulterà es.
$wh=WHERE  ingr_1= "pomodoro" AND ingr_2= "prosciutto crudo" AND 1=1
*/
if($wh=="WHERE 1=1"){//se $_POST['ingredienti'] è vuoto
	echo "non hai selezionato gli ingredienti";
	//...
}else{//altrimenti mostri il risultato
	$sql="SELECT * FROM P_ingredienti $wh";
	//.....
}
//.....
?>
prova e sappimi dire

una cosa:
stai usando le istruzioni php msql? se si abbandonale sono deprecate e passa alle php mysqli o alla classe pdo
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
il mio suggerimento è di costruire una query che cerca tutte le pizze con gli ingredienti NON disponibili
gli ingredienti derivano dalle checkbox non marcate
(scusa, non ti posto lo script)

Codice:
select distinct pizza from tabellapizze 
where ingr_1 in ('funghi', 'peperoni' ....) 
or ingr_2 in  ('funghi', 'peperoni' ....)
or ripetuto per il numero di ingredienti previsti nel db

poi scrivi una seconda query che contiene la prima

Codice:
select distinct pizza from tabellapizze 
where pizza not in (select precedente)

con questa query combinata hai la lista delle pizze con i componenti presenti

credo che sia più semplice che "giri di programma" anche se poi tutto dipende dalla struttura del database

chissà Borgo potrebbe aiutarci a tradurla in pratica, soprattutto con un array dei componenti non disponibili
inclusa nella select

ciao
Marino
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Problema con sottrazione e confronto PHP 3
T Problema: Confronto date con Mysql PHP 3
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema con eccessiva nitidezza apertura Camera Raw Photoshop 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7

Discussioni simili