Forum


Suchen Forum RSS RSS2 SuchenSuchen Mitgliederliste Mitgliederliste RegistrierenRegistrieren ProfilProfil Login


Gehe zu: » Forum » PHP und MySQL » Cocktail Zutatensuche

Seite: 1

Thema
Autor
Cocktail Zutatensuche
Beitrag von loopo am: 08.01.2007 19:38:58

Hi,

mein erster Codeschnipsel den ich poste
Wie der Titel schon sagt; ein Codeschnipsel der eine Zutatensuche realisiert. Jetzt denkt ihr bestimmt,.. toll da muß ja erstma die Datenbank gefüllt werden ! Jaein,.. ich hab in die Tabellen bereits 103 verschiedene Cocktails eingetragen.

1. Ihr müßt ein Formular in html schreiben mit zwei input feldern. 1. suchezutat 2. suchecock

2. Folgende Tabellen sollten in einer MYsql Datenbank enthalten sein:
1. http://www.nais-cup.de/privat/fabian/code/cocktail/drinks.sql
2. http://www.nais-cup.de/privat/fabian/code/cocktail/wortindex.sql

In der drinks.sql wird jedem Cocktail eine id zugewiesen, es wird festgelegt zu welcher Gruppe ein Drink gehört, den Titel, eine Beschreibung wie der Drink hergestellt wird und die Zutaten für die Ausgabe die der User sieht.

In der wortindex.sql wirden die Zutaten eines Cocktails der entsprechenden Cocktail ID zugewiesen.

der folgende Code gibt die Ergebnisse der Suchwörter seitenweise aus. Mit Sicherheit kann man das auch besser Coden aber wer liebt es nicht "quick and dirty" ;-) (Bitte meine gestrichelten Trennlinien mit <hr> ´s austauschen ;-)

PHP-Code:
<?   $suchezutat = $HTTP_POST_VARS["suchezutat"]; $suchecock = $HTTP_POST_VARS["suchecock"]; $bstring = ereg_replace(", ", ",", $suchezutat);     $string = implode("', '", explode(",",$bstring));   // Die dbconnect.php bitte noch anpassen !!! include("./dbconnect.php");   // Hier die erste abfrage nach Zutaten   $abfrage = "select count(d.id) cnt, titel, beschreibung, zutaten from drinks d inner join wortindex wi on d.id = wi.cockid where word in ('$string') group by titel, beschreibung order by cnt desc"; $ergebnis = mysql_query($abfrage);   while($row = mysql_fetch_object($ergebnis)) {   if($row->cnt > 0) {   echo "<table>"; echo "<tr><td valign=\"top\" width=\"100\"><b>$row->titel</b> <br>$row->cnt Zutatentreffer</td>"; echo "<td width=\"50\"></td>"; echo "<td width=\"200\" valign=\"top\"><i><font color=\"#7E2D2D\">"; echo nl2br($row->beschreibung); echo "</font></i></td>"; echo "<td width=\"50\"></td>"; echo "<td width=\"200\" valign=\"top\">"; echo nl2br($row->zutaten); echo "<br><br></td></tr>"; echo "</table>"; echo "--------------------------------------------------------------------------------------------------------------------------------------------------------"; } }     // Hier die zweite Abfrage nach Cocktailnamen if($suchecock != "") {   $abfrage1 = "SELECT titel, beschreibung, zutaten FROM drinks WHERE titel LIKE '%$suchecock%'"; $ergebnis1 = mysql_query($abfrage1); while($row = mysql_fetch_object($ergebnis1)) { echo "<table>"; echo "<tr><td valign=\"top\" width=\"100\"><b>$row->titel</b></td>"; echo "<td width=\"50\"></td>"; echo "<td width=\"200\" valign=\"top\"><i><font color=\"#7E2D2D\">"; echo nl2br($row->beschreibung); echo "</font></i></td>"; echo "<td width=\"50\"></td>"; echo "<td width=\"200\" valign=\"top\">"; echo nl2br($row->zutaten); echo "<br><br></td></tr>"; echo "</table>"; echo "--------------------------------------------------------------------------------------------------------------------------------------------------------"; }   }   ?>


Ich gehe davon aus das jeder weiß was in eine dbconnect kein sollte !

Ihr könnt das ganze auch erstmal betrachten bevor ihr es anpaßt. Außerdem auch eine Möglichkeit mein Formularfeld zu mopsen *g*
http://kulinarisch-unterwegs.de/version1/db/cocktail/ausgabe.php

Viel Spaß damit, wenn jemand das ganze mal verbessert hat oder Fragen hat,.. immer rein ins Forum

Gruß
loopo


loopo
Benutzer


Beiträge: 32
OFF PN Schicken Homepage

Seite: 1



Statistik
Statistik
Es wurden insgesamt 2165 Beiträge geschrieben.
Wir haben 10530 registrierte Mitglieder.
Der neueste Benutzer ist Kay - Forum Beta³ - Bug melden