php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.05.2008, 01:48  
Neuer Benutzer
 
Registriert seit: 15.05.2008
Beiträge: 8
mrrosette befindet sich auf einem aufstrebenden Ast
Standard frage: welche array funktion??

hallo liebe php´ler,
ich habe noch nicht so viel ahnung von php und ich hoffe das meine frage nicht ganz zu blöd ist.
ich versuche seit einiger zeit eine "cocktailsuche" zu progen.
und zwar soll man auf der hp mehrere ckeckboxen sehen können, wobei jede für eine zutat steht. also z.b. ckeckbox1 = bananensaft usw...
dann gibt es eine datenbank mit drei tabellen, die wie folgt aussehen:

tabelle1(rezepte):
id_____rezept
1_____caipirinha
2_____swimingpool
usw..

tabelle2(zutaten)
id_____zutat
1_____limetten
2_____brauner_zucker
3_____cashaca
4_____Cream of Coconut
5_____vodka
6_____sahne
usw...

tabelle3(verknüpfung):
id____rezept_________zutat
1____caipirinha_______limetten, brauner zucker, cashaca
2____swimingpool_____Cream of Coconut, vodka, sahne
usw...


mein code sieht so aus:
Code:
<html>
<head></head>
<body>

<form action="123.php" method="post">
<table>
<tr><td><input type="checkbox" name="li">limetten</td></tr>
<tr><td><input type="checkbox" name="bz">brauner zucker</td></tr>
<tr><td><input type="checkbox" name="ca">cashaca</td></tr>
<tr><td><input type="checkbox" name="cc">cream of coconut</td></tr>
<tr><td><input type="checkbox" name="vo">vodka</td></tr>
<tr><td><input type="checkbox" name="sa">sahne</td></tr>
<tr><td><input type="submit"></td></tr>
</table></form>


<?php

if( isset($_POST['li']) )
   $limetten = 1;

if( isset($_POST['bz']) )
   $brauner_zucker = 1;

if( isset($_POST['ca']) )
   $cashaca = 1;

if( isset($_POST['cc']) )
   $cream_of_coconut = 1;

if( isset($_POST['vo']) )
   $vodka = 1;

if( isset($_POST['sa']) )
   $sahne = 1;

$vorhanden = array($limetten , $brauner_zucker , $cashaca , $cream_of_coconut , $vodka , $sahne);

echo "$vorhanden[0]<br>";
echo "$vorhanden[1]<br>";
echo "$vorhanden[2]<br>";
echo "$vorhanden[3]<br>";
echo "$vorhanden[4]<br>";
echo "$vorhanden[5]<br>";
?>



<?php
 
mysql_connect("localhost","user","password") or die ("verindung nicht möglich");

mysql_select_db("mrrosetteadmi_05") or die ("datenbank nicht vorhanden");

$result = mysql_query('select zutat from verknuepfung') OR die(mysql_error());

   echo "$result Datensaetze gefunden<br>";

while($benoetigt = mysql_fetch_assoc($result))

   {
      echo $benoetigt['zutat'];
   }






  $fertig = array_key($benötigt,$vorhanden)
    {
     echo §fertig;
    }

  ?>




</body>
</html>
also ganz oben im code sind die ckeckboxen welche nach drücken des submit buttons in den array $vorhanden geladen werden.
die echo´s sind nur zum test da..
jetzt werden die benötigten zutaten aus der datenbank gezogen ($benoetigt) und sollen jetzt mit dem array $vorhanden verglichen werden.
ich eiß nicht so richtig welche array funktion ich jetzt nehmen soll da ich mich wie gesagt nicht so gut auskenne. ich hoffe ich versteht meine idee ud könt mir dabei helfen..
danke schon im vorraus lg mrrosette
mrrosette ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.05.2008, 10:00  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo und Willkommen im Forum!

So weit ich weis gäbe es da die Möglichkeit das mit einer foreach Schleife zu machen,da kann ich dir aber nichts genaues zu sagen weil ich damit selber noch nichts gemacht habe. Oder aber du kannst mit der Funktion in_array das Array durchsuchen und dann deinen Vergleich dazu programmieren!

mfg der Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 15.05.2008, 10:49  
Benutzer
 
Registriert seit: 15.05.2008
Beiträge: 37
gene befindet sich auf einem aufstrebenden Ast
Standard

Hi, ich bin auch nicht sehr lange mit PHP dabei aber ich würde $_POST Variablen in dem Fall nicht mit isset() prüfen. Denn selbst wenn du zB "li" nicht auswählst existiert die Variable "li", ist aber leer. Ich würde zusätzlich noch !empty() verweden.

Tut mir Leid wenn ich mich Irre, ich denke aber ich liege richtig.
gene ist offline  
Alt 15.05.2008, 11:06  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Hi,

ich versteh noch nicht so ganz wo der Knackpunkt jetzt ist. Du erzählst viel vom drumherum, aber was genau jetzt das Ergebnis sein soll wird kaum gesagt.

Generelle Tipps:
- setze deinen Checkboxen das Attribut value="1" , denn der wird dann wirklich nur übertragen wenn ein Haken gesetzt ist und du kannst deine überprüfung auf if($_POST["bz"]==1) erweitern.

- echo "$result Datensaetze gefunden<br>"; wird nicht funktionieren. $result ist hier eine MySQL-Result-Ressource. Die Anzahl der gefundenen Datensätze bekommst du mit der Funktion mysql_num_rows($result)
cycap ist offline  
Alt 15.05.2008, 13:37  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Willst Du anzeigen, welche Cocktails mit den vorhanden Zutaten gemischt werden können? Oder welche Zutaten für einen bestimmten Cocktail fehlen?
David ist offline  
Alt 15.05.2008, 21:23  
Neuer Benutzer
 
Registriert seit: 15.05.2008
Beiträge: 8
mrrosette befindet sich auf einem aufstrebenden Ast
Standard

ok danke für alles aber bissher hat nichts davon zum gewünschten ergebnis geführt..
@david ich möchte die coktails anzeigen lassen, die man mit den zutaten mischen kann, die man hat.
die tipps von cycap habe ich befolgt aber es hat sich nichts sichtliches geändert.
was genau ich wissen möchte ist, wie ich die benötigten zutaten ($benötigt) mit den vorhandenen ( $vorhanden) vergleichen kann im gleichem prozess die namen der cokctails ausspucken kann.
mrrosette ist offline  
Alt 16.05.2008, 09:19  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

tabelle 1+2 übernehme ich, nur die Namen sind etwas geändert.
Code:
CREATE TABLE `rezepte` (
  `rezept_id` int(11) NOT NULL auto_increment,
  `rezept_name` varchar(48) default NULL,
  PRIMARY KEY  (`rezept_id`)
)
Code:
CREATE TABLE `zutaten` (
  `zutat_id` int(11) NOT NULL auto_increment,
  `zutat_name` varchar(48) NOT NULL,
  PRIMARY KEY  (`zutat_id`)
)
Tabelle 3 wird aufgetrennt. Es stehen nicht mehr alle Zutaten in einem Feld (das ist etwas, womit SQL nicht umgehen kann), sondern pro Datensatz gibt es genau eine Verknüpfung Rezept->Zutat.
Code:
CREATE TABLE `rezept_zutaten` (
  `id` int(11) NOT NULL auto_increment,
  `rezept_id` int(11) NOT NULL,
  `zutat_id` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
)
Code:
INSERT INTO `rezepte` (`rezept_id`, `rezept_name`) VALUES
 (1,'caipirinha'),	(2,'swimingpool'), (3,'ekelcaipi');

INSERT INTO `zutaten` (`zutat_id`, `zutat_name`) VALUES
 (1,'limetten'), (2,'brauner_zucker'), (3,'cashaca'),
 (4,'Cream of Coconut'), (5,'vodka'), (6,'sahne');

INSERT INTO `rezept_zutaten` (`id`, `rezept_id`, `zutat_id`) VALUES
 (1,1,1),(2,1,2), (3,1,3), (4,2,4), (5,2,5), (6,2,6),
 (7,3,1), (8,3,2), (9,3,3), (10,3,5);
Die beiden Drinks von oben und Drink #1+Voda (irgendeine Zutat mehr, nicht 3 sondern 4)

Wir haben die Zutaten 1,2,3.
Erstmal die einfache Abfrage: "Welche Drinks enthalten Zutaten 1,2,3?"
Code:
SELECT
  rezept_id,zutat_id
FROM
  rezept_zutaten as rz
WHERE
  rz.zutat_id IN(1,2,3)
Soweit einverstanden?
David ist offline  
Alt 16.05.2008, 09:25  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

ekelcaipi? hehe
cycap ist offline  
Alt 16.05.2008, 09:28  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Ja, ich habe beim Tippen eben gemurmelt "...und jetzt noch 5 zum Caipi ...Vodka." Und dann kam gleich der entsetzte Aufschrei "heute ein bisschen eklig?" zurück. Passt, also Ekelcaipi
David ist offline  
Alt 16.05.2008, 10:16  
Erfahrener Benutzer
 
Registriert seit: 07.04.2008
Beiträge: 100
PHP-Kenntnisse:
Anfänger
reliC ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hi
also so wie ich es verstanden habe, würde ich es so angehen das du in deiner tabelle die fertigen rezepte hast und dann einfach deine zutaten die du aus den checkboxen übergibst mit den rezepten in der datenbank vergleichst. Sobald 1 rezept komplett erfüllt ist mit zutaten also das alle vorhanden sind dann gibst du für dieses rezept ein true aus, am ende sobald du die komplette tabelle durchgegangen bist also alle rezepte überprüft hast gibst du alle rezepte die ein true gesetzt bekommen haben aus!
reliC ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
mehrdimensionales Array als HTML-Formular mindhead PHP Tipps 2008 3 11.04.2008 15:25
Kategoriedaten rekursiv in Array bringen Schiedsrichter PHP Tipps 2008 2 10.12.2007 15:43
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
funktion die array zurück gibt PHP Tipps 2005-2 24 07.09.2005 09:49
Frage zu array mit PHP nicobischof PHP Tipps 2005-2 9 15.08.2005 20:30
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array von Funktion zurückgeben PHP Tipps 2005-2 5 06.07.2005 12:47
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43
Array aus einer funktion weiterreichen. PHP Tipps 2005 21 20.01.2005 11:08
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
frage zu array PHP Tipps 2004-2 15 24.11.2004 20:47
[Erledigt] Frage zu Funktion &quot;imagestring()&quot; PHP Tipps 2004 1 20.07.2004 19:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
limetten1@gmx.de, wie übernehme ich checkboxen in sql datenfelder, cashaca

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum