Portal > Foren > PHP > PHP-Programmierung > Cocktail Datenbank ohne Mysql mit Mysql umsetzen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 16.05.2005, 18:46 Nach oben    #1
druckgott
Gast
 
Beiträge: n/a
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

Also das der index.html

PHP-Code:
<html>
<
head>
<
title>Unbenanntes Dokument</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</
head>

<
body>
<
form method="post" action="test2.php" >
  <
p
    <
select size="5" name="select[]" multiple="multiple">
      <
option value="1">Vodka</option>
      <
option value="2">Gin</option>
      <
option value="3">Bull</option>
      <
option value="4">Saft</option>
    </
select>
  </
p>
  <
p>
    <
input type="submit">
  </
p>
  </
form>
<
p></p>
</
body>
</
html

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";
}

?>
mfg druckgott
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.05.2005, 23:11 Nach oben    #2
druckgott
Gast
 
Beiträge: n/a
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

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>";
Es handelt sich um eine n:m-Verknüpfung zwischen den Tabellen. Jede Zutat kann in beliebig vielen Cocktails vorkommen und jeder Cocktail kann beliebig viele Zutaten beinhalten. Eine solche Verknüpfung wird durch drei Tabellen abgebildet.

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
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.05.2005, 23:14 Nach oben    #3
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.378
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

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:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.05.2005, 23:19 Nach oben    #4
druckgott
Gast
 
Beiträge: n/a
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

das steht unter

"und das dann der test :"

das hab ich für Ben gepostet!!!
das haben wir in icq besprochen

ich will das ganze in Verbindung mit einer Datenbank haben
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.05.2005, 08:24 Nach oben    #5
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.378
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

ok - dann halte ich mich raus...
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.05.2005, 09:12 Nach oben    #6
druckgott
Gast
 
Beiträge: n/a
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

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
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.05.2005, 10:10 Nach oben    #7
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.378
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

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:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.05.2005, 21:59 Nach oben    #8
druckgott
Gast
 
Beiträge: n/a
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

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
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.05.2005, 22:14 Nach oben    #9
druckgott
Gast
 
Beiträge: n/a
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

so jetzt hab ich entlich den fehlr und zwar die . in den tabellen checkt er nicht hab jetzt _ genommen und es ging
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.05.2005, 22:49 Nach oben    #10
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.378
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

was mich wunder ist, dass er das akzeptiert:

WHERE cocktail.id =
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2005, 16:15 Nach oben    #11
druckgott
Gast
 
Beiträge: n/a
Standard Cocktail Datenbank ohne Mysql mit Mysql umsetzen

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>";

}

?>
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ä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


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45