2.2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo liebe leute!!
Habe ein problem mit einem Select option...die kategorie nehme ich aus der Datenbank, dann auf der nächsten Seite sollen alle produkte dieser kategorie angezeigt werden...Weiß nicht, wie ich den den ausgewählten Datensatz bekomme, weil mit einem normalen Post geht das nicht....schauts euch mal an:

Artikel.php

<td><select name="kategorie" id="kategorie">
<?php
$result = mysql_query("SELECT DISTINCT kategorie FROM energie");
while($row = mysql_fetch_assoc($result)){
$kategorie = $row -> kategorie;
echo "<option value=>$row[kategorie]";
}
?>
</select>

8 Antworten

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Nein!

while ($row = mysql_fetch_assoc($result)) {
echo '<option value="'. $row['kategorie']. '">'. $row['kategorie']. '</option>';
}
0 Punkte
Beantwortet von
Naja da ändert sich gar nichts...
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Doch. Das HTML-Konstrukt dafür ist dann zumindest richtig. Aber was du mir nicht zeigst, kann ich auch nicht auf Fehler analyisieren...
0 Punkte
Beantwortet von
Das ist die admin.php...

<?php
session_start();
if(!isset($_SESSION['user_res']) || $_SESSION['user_res'] == "")
die("Required<code></code> Session not found!");
$ses = $_SESSION['user_res'];
$user_data = explode("_",$ses);
$uID = $user_data[0];
?>

<form action="/foodcoach/admin/inc/warenkorb/Artikel2.php" method="post">
<table width="247" height="72" border="1">
<tr>
<td width="237">Kategorie</td>
</tr>
<tr>
<td><select name="kategorie" id="kategorie">
<option value="" selected="selected">Bitte ausw&auml;hlen</option>
<?php
$result = mysql_query("SELECT DISTINCT kategorie FROM energie");
while ($row = mysql_fetch_assoc($result)) {
echo '<option value="'. $row['energieid']. '">'. $row['kategorie']. '</option>';
}
?>
</select></td>
</tr>
</table>
<p>
<input type="submit" name="weiter" id="weiter" value="weiter" />
</p>
</form>
</body>
</html>

<?
@MYSQL_CLOSE($db);
?>


Hier die Seite, auf die weitergeleitet wird, admin2.php

<?php
session_start();
if(!isset($_SESSION['user_res']) || $_SESSION['user_res'] == "")
die("Required<code></code> Session not found!");
$ses = $_SESSION['user_res'];
$user_data = explode("_",$ses);
$uID = $user_data[0];
$db_server = "localhost";
$db_name = "foodcoach";
$db_user = "root";
$db_passwort = "";
$db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort) or die ("Konnte keine Verbindung zur Datenbank herstellen!");
$db_check = @MYSQL_SELECT_DB($db_name);
?>
<html>
<body>

<table><tr><td><?php $kategorie=$_POST['kategorie'];
echo "<h1>$kategorie</h1>";?></td></tr>
<tr><td>Produkt</td><td>Kalorien</td></tr>
<?php
$result=mysql_query("SELECT produkt, kcal FROM energie WHERE kategorie='$kategorie'");
while($row = mysql_fetch_assoc($result)){
echo "<tr><td>'.$row['produkt'].'</td><td>'.$row['kcal'].'</td></tr>";
}
?>
</body>
</html>
<?
@MYSQL_CLOSE($db);
?>
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Die Seite leitet aber auf Artikel2.php weiter. Was bekommst du denn überhaupt? Die richtige Seite aber keine Datensätze? Gar keine Seite? Was genau bedeutet "funktioniert nicht"? Du musst es so erklären, als ob ich keine deiner Unterlagen kenne...
0 Punkte
Beantwortet von
Die Seite schon, aber ich krieg die daten aus dem POST nicht zurück...
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
...dann überprüfe, ob in dem HTML-Quelltext (also der im Browser, nicht der, den du erstellst) der absendenden Seite so aufgebaut ist:
- enthält den <FORM>-Tag,
- der <SELECT>-Tag innerhalb trägt den Namen "kategorie"
- die einzelnen <OPTION>-Tags haben als VALUE auch einen Wert, der nicht leer ist

Bau in die Zielseite zu Anfang noch folgendes ein:
<?php
print_r( $_POST );
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
$result = mysql_query("SELECT DISTINCT kategorie FROM energie");
while ($row = mysql_fetch_assoc($result)) {
echo '<option value="'. $row['energieid']. '">'. $row['kategorie']. '</option>';
}


Da ist der Fehler, dein SELECT liefert die Spalte "energieid" nicht zurück, d.h. $row['energieid'] ist immer null bzw. leer!
...