Hallo ich habe ein Problem und zwar hab ich jetzt ein script geschrieben, dass mir die Cocktails herausfillter wo eine Zutat vorhanden ist jetzt gibt er aber alle aus wo die Zutat vorhanden ist. Jetzt will ich, das er mir nur die ausgibt, wo alle Zutaten vorhanden sind also wenn ich z.B. Vodka und Bull habe nur die ausgibt die auch nur! Vodka und Bull haben also nicht die die Vodak und Bull drin haben .
Also mein Script sieht bis jetzt so aus:
Hier mal noch die Tabellen zur orientierung
cocktailZutaten_mehr:
cocktail_mehr:
zutat_mehr:
Ich hoffe es kann mir jemand helfen! da ich leider von mysql nicht so die Megaahnung habe währe echt super
mfg
druckgott
Also mein Script sieht bis jetzt so aus:
PHP-Code:
<?php
@error_reporting(7);
/** connect db **/
require("config.inc.php");
require("class_db.php");
$db = new db($mysqlhost,$mysqluser,$mysqlpassword,$mysqldb);
$id1=1; //die ID des ausgewählten cocktails, z.B. über $_GET erhalten
$res = mysql_query("SELECT
zutat_id AS zId,
zutat_name AS zName,
cocktail_id AS cId,
cocktail_name AS cName
FROM zutat_mehr
LEFT JOIN cocktailZutaten_mehr ON ( zutat_id = cocktailZutaten_mehr.z1_zutatId)
LEFT JOIN cocktail_mehr ON ( cocktail_id = cocktailZutaten_mehr.cocktailId )
WHERE zutat_id ='".mysql_escape_string($id1)."'");
$firstRow=true; //Hilfsvariable
$data=array();//damit es auch nach der Schleife noch existiert
while ($row=mysql_fetch_assoc($res)) {
$data=$row;
if ($firstRow) {
$firstRow=false;
echo "<h2>Zutat:</h2>";
echo "".$row['zName']."";
echo "<h2>Cocktail:</h2>";
echo "<ul>";
}
echo "<li>".$row['menge']." ".$row['cName']."</li>";
}
?>
Hier mal noch die Tabellen zur orientierung
cocktailZutaten_mehr:
PHP-Code:
#
# Tabellenstruktur für Tabelle `cocktailZutaten_mehr`
#
CREATE TABLE `cocktailZutaten_mehr` (
`cocktailId` int(4) NOT NULL auto_increment,
`z1_zutatId` int(4) NOT NULL default '0',
`z2_zutatId` int(4) NOT NULL default '0',
PRIMARY KEY (`cocktailId`),
KEY `name` (`z1_zutatId`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
#
# Daten für Tabelle `cocktailZutaten_mehr`
#
INSERT INTO `cocktailZutaten_mehr` VALUES (1, 1, 2);
INSERT INTO `cocktailZutaten_mehr` VALUES (2, 3, 2);
cocktail_mehr:
PHP-Code:
#
# Tabellenstruktur für Tabelle `cocktail_mehr`
#
CREATE TABLE `cocktail_mehr` (
`cocktail_id` int(4) NOT NULL auto_increment,
`cocktail_name` varchar(255) NOT NULL default '',
`cocktail_rezept` varchar(255) NOT NULL default '',
`cocktail_kommentar` varchar(255) NOT NULL default '',
PRIMARY KEY (`cocktail_id`),
KEY `rezept` (`cocktail_name`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;
#
# Daten für Tabelle `cocktail_mehr`
#
INSERT INTO `cocktail_mehr` VALUES (1, 'Vodka Bull', '2', 'der Kommentar');
INSERT INTO `cocktail_mehr` VALUES (2, 'Gin Tonic', '2', 'das ist der kommentar');
zutat_mehr:
PHP-Code:
#
# Tabellenstruktur für Tabelle `zutat_mehr`
#
CREATE TABLE `zutat_mehr` (
`zutat_id` int(4) NOT NULL auto_increment,
`zutat_name` varchar(100) NOT NULL default '',
`zutat_info` varchar(100) NOT NULL default '',
PRIMARY KEY (`zutat_id`),
KEY `name` (`zutat_name`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;
#
# Daten für Tabelle `zutat_mehr`
#
INSERT INTO `zutat_mehr` VALUES (1, 'Bull', 'hier die Info');
INSERT INTO `zutat_mehr` VALUES (2, 'Gin', 'keine');
INSERT INTO `zutat_mehr` VALUES (3, 'Saft', '');
mfg
druckgott
Kommentar