PHP & Mysql

Hallo,
ich versuche eine interaktive Webseite zu gestalten mit PHP und Mysql!

Auf der html Seite sieht der Quelltext folgendermaßen aus:

berg
tal
wald

Der dazugehörige php – Code sieht so aus:

<?php $db=mysql_connect("localhost","Kerstin","")
or die("**Kein Connect zum Datenbankserver!"); mysql\_select\_db("test") or die("Datenbank konnte nicht angesprochen werden!"); foreach ($\_REQUEST['reise'] as $element) { echo $element." "; if ($element == "berg") $berg = "berg"; if ($element == "tal") $tal = "tal"; if ($element == "wald") $wald = "wald"; } $sqlbef = "SELECT \* FROM bsp WHERE berg = $berg"; $sqlerg = mysql\_query($sqlbef); $anz = mysql\_num\_rows($sqlerg); mysql\_close($db); echo " "; echo ""; echo " \*\*\* Berg \*\*\* \*\*\* Tal \*\*\* \*\*\* Wald \*\*\* "; echo ""; FOR ($i=0; $i "; echo "$a$b$c"; } echo ""; ?\> Also, folgendes Problem: Ich möchte, wenn z.B die Checkbox „Berg“ aktiviert ist, in die Variable $berg das Wort „berg“ reinschreiben. Dann soll mit der SELECT Anweisung in der Tabelle bsp alle Zeilen ausgegeben werden, in denen in der Spalte berg der Inhalt der Variable $berg (also berg) drinsteht. Nun erkennt er aber bei dieser Schreibweise der SELECT Anweisung die Variable $berg nicht. Notice: Undefined variable: berg in E:\htdocs\bsp\ausw.php on line 21 Außerdem bekomme ich diese Warnung: Warning: mysql\_num\_rows(): supplied argument is not a valid MySQL result resource in E:\htdocs\bsp\ausw.php on line 24 Wie muss ich die Variable in der SELECT Anweisung maskieren, und wieso bekomme ich diese Warnung?**

versuchs einfach mal
statt $berg $_POST[‚berg‘] zu verwenden.

HTH
Munich

Ich würd’s folgendermassen angehen:
foreach ($_POST[reise] as $element)
{
$$element=$element;
echo $element;
}

Das sollte die richtigen Variablen setzen. Was die Warnung angeht, so ist es viel einfacher: Die sql-abfrage wird nicht richtig ausgeführt, da bei dir stand: „… where berg=“. Das ergibt natürlich so keinen sinn.

Sollte funktionieren, wenn berg gesetzt ist. Wenn nicht, hast du ein Problem, aber dann kannst du’s folgendermassen eleganter machen:
$sql=„select * from table“;
foreach ($_POST[reise] as $element)
{
$where[]="$element=’$element’";
}
whereclause=implode(" AND ",$where);
if (!is_empty($whereclause))
{$whereclause=„where „.$whereclause.“;“;}
$sql.=$whereclause;

hoffentlich hiilfreich.

islaminhannover.de

berg

tal

wald

Der dazugehörige php – Code sieht so aus:

<?php :blush:db=mysql_connect("localhost","Kerstin","")
or die("**Kein Connect zum Datenbankserver!"); mysql\_select\_db("test") or die("Datenbank konnte nicht angesprochen werden!"); foreach ($\_REQUEST['reise'] as $element) { echo $element." "; if ($element == "berg") $berg = "berg"; if ($element == "tal") $tal = "tal"; if ($element == "wald") $wald = "wald"; } $sqlbef = "SELECT \* FROM bsp WHERE berg = $berg";**