![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Also das der index.html PHP-Code: und das dann der test : Code: <?php
//gibt aus was alles vorhanden ist
for ($i=0; $i<5; $i++)
{
$getrank = $_POST['select'][$i];
if ($getrank == 1)
{ $zutat1 = "vodka";}
if ($getrank == 2)
{ $zutat2 = "gin";}
if ($getrank == 3)
{$zutat3 = "bull";}
if ($getrank == 4)
{$zutat4 = "saft";}
}
//Cocktails und Zutaten
$cocktail1 = "Cocktail1";
$cocktail2 = "Cocktail2";
$cocktail3 = "Cocktail3";
$cocktail4 = "Cocktail4";
$cocktailzut1 = ($zutat1 == "vodka" AND $zutat2 == "gin" AND $zutat4 == "saft");
$cocktailzut2 = ($zutat3 == "bull" AND $zutat4 == "saft");
$cocktailzut3 = ($zutat1 == "vodka" AND $zutat4 == "saft");
$cocktailzut4 = ($zutat1 == "vodka" AND $zutat2 == "gin");
//Testet die Cocktails die man mixxen kann
if ($cocktailzut1)
{
echo "$cocktail1<br />\n";
}
if ($cocktailzut2)
{
echo "$cocktail2<br />\n";
}
if ($cocktailzut3)
{
echo "$cocktail3<br />\n";
}
if ($cocktailzut4)
{
echo "$cocktail4<br />\n";
}
?>
|
|
| | Nach oben #2 |
| Gast
Beiträge: n/a
|
so eine anregutng hab ich schon aber ich bekomme da immer den fehler: Fatal error: Call to undefined function: mysql_real_escape_string() in /srv/www/htdocs/web2/html/cocktail/CTDB2005/test.php on line 24 Ein Beispiel: Tabelle cocktail: * id INT, primary key, auto increment, eindeutiger Bezeichner * name CHAR, Bezeichnung des Cocktail * rezept TEXT, Mixanweisungen * kommentar TEXT, z.B. Brasilianisches Nationalgetränk oder was man sonst so über den Cocktail zusammengetragen hat Tabelle zutat: * id INT, primary key, auto increment, eindeutiger Bezeichner * name CHAR, Bezeichnung der Zutat * infos TEXT, z.B. wo bekommt man es her, Alkoholgehalt, usw. Tabelle cocktailZutaten: * cocktailId INT, id des Cocktail * zutatId INT, id der zutat * menge CHAR, Menge, in der die Zutat in den Cocktail eingeht Menge könnte man auch detaillierter in 2 Feldern, menge (double) und einheit (char) abbilden. Erweitern könnte man es durch Bilder-Urls oder was einem sonst noch so einfällt. Als Beispiel eine Abfrage für ein komplettes Rezept: Code: //Verbindung zur Datenbank herstellen
$id=1; //die ID des ausgewählten cocktails, z.B. über $_GET erhalten
$res = mysql_query("SELECT
cocktail.id AS cId,
cocktail.name AS cName,
cocktail.rezept,
cocktail.kommentar,
zutat.id AS zId
zutat.name AS zName,
zutat.menge
FROM cocktail
LEFT JOIN cocktailZutaten ON (cocktail.id=cocktailZutaten.cocktailId)
LEFT JOIN zutat ON (zutat.id=cocktailZutaten.zutatId)
WHERE cocktail.id=".mysql_real_escape_string($id));
$firstRow=true; //Hilfsvariable
$data=array();//damit es auch nach der Schleife noch existiert
while ($row=mysql_fetchassoc($res)) {
$data=$row;
if ($firstRow) {
$firstRow=false;
echo "<h1>".$row['cName']."</h1>";
echo "<h2>Zutaten</h2>";
echo "<ul>";
}
echo "<li>".$row['menge']." ".$row['zName']."</li>";
}
echo "</ul>";
echo "<h2>Rezept</h2>";
echo "<p>".$data['rezept']."</p>";
echo "<h2>Kommentar</h2>";
echo "<p>".$data['kommentar']."</p>";
Angenommen Du suchst einen Cocktail, der Wodka (id = 2) und Saft (id = 5) enthält, dann sollte so ein Query funktionieren: SELECT cocktail.id, cocktail.name FROM cocktail JOIN cocktailZutaten AS z1 ON (cocktail.id=z1.cocktailId) JOIN cocktailZutaten AS z2 ON (cocktail.id=z2.cocktailId) WHERE z1.zutatId=2 AND z2.zutatId=5 Das Query lässt sich natürlich entsprechend erweitern. Ausschließen, dass es keine weiteren Zutaten gibt kann man bestimmt auch, hier ein Versuch als Anregung, von dem ich allerdings nicht glaube, dass er funktioniert: SELECT cocktail.id, cocktail.name, COUNT(*) AS anzahlZutaten FROM cocktail JOIN cocktailZutaten AS z1 ON (cocktail.id=z1.cocktailId) JOIN cocktailZutaten AS z2 ON (cocktail.id=z2.cocktailId) JOIN cocktailZutaten AS c ON (cocktail.id=c.cocktailId) GROUP BY c.cocktailId WHERE z1.zutatId=2 AND z2.zutatId=5 AND anzahlZutaten=2 //Anzahl der gewählten Zutaten |
|
| | Nach oben #3 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.378
|
sry, ich habe keine Frage gefunden. Ich habe das Problem nicht finden können... außerdem: wie sieht denn die Seite test2.php aus? Dorthin schickst du ja die Daten aus dem Formular.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #5 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.378
|
ok - dann halte ich mich raus...
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #6 |
| Gast
Beiträge: n/a
|
ne kannst shcon mithelfen so ist es nicht !!! *g* den ersten fehler hab ich schon weg hab einfach mysql_escape_string genommen aber jetzt bekomme ich wieder einen fehler und zwar Call to undefined function: mysql_fetchassoc |
|
| | Nach oben #7 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.378
|
er kennt die Funktion nicht. wenn du diese meinst: mysql_fetch_assoc dann mit weiterem _ dazu auch: www.php.net/*name_der_Funktion* wobei *name_der_Funktion* dann zu ersetzen ist.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #8 |
| Gast
Beiträge: n/a
|
ich hab mitlerweile herausgefunden das es an der mysql abfrage liegt aber ich weiß nicht an was ich bekomme immer diesen fehler wenn ich es in phpmyadmin ausführe: Fehler SQL-Befehl : SELECT cocktail.id AS cId, cocktail.name AS cName, cocktail.rezept, cocktail.kommentar, zutat.id AS zId, zutat.name AS zName, zutat.menge FROM cocktail LEFT JOIN cocktailZutaten ON ( cocktail.id = cocktailZutaten.cocktailId ) LEFT JOIN zutat ON ( zutat.id = cocktailZutaten.zutatId ) WHERE cocktail.id = LIMIT 0 , 30 MySQL meldet: #1064 - You have an error in your SQL syntax near 'LIMIT 0, 30' at line 5 |
|
| | Nach oben #10 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.378
|
was mich wunder ist, dass er das akzeptiert: WHERE cocktail.id =
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #11 |
| Gast
Beiträge: n/a
|
jo das hat er nicht mitlerweile haut es schon teils teils hin aber leider ist die ausgabe bis jetzt so das er mir alle cocktails ausgibt die z.B. bull beinhalten wie kann ich das jetzt einschränken 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>";
}
?>
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem bei Verarbeitung von Templates (Eigene Klassen) | dago | PHP-Programmierung | 21 | 31.08.2006 16:02 |
| ssh tunnel zu einer mysql datenbank | beny_mcde | Datenbanken | 4 | 07.06.2006 16:05 |
| [Linux] LAMP Tutorial - Installation von Apache, MySQL und PHP unter Linux | Corvin | Tutorials | 6 | 17.04.2006 22:13 |
| MySQL 5.1 kommt in die Beta-Phase | Ben | Nachrichten | 1 | 02.03.2006 14:31 |
| Datenbank und Sicherheit | sparrow | Datenbanken | 23 | 05.11.2005 17:45 |