Auswahlliste aus DB

corona

Erfahrenes Mitglied
Hallo,
folgendes Problem:

Ich habe eine Auswahlliste, die die Werte aus der MySQL-DB liest. Klappt alles wunderbar. Nun will ich den Wert, den man ausgewählt hat nicht in die DB schreiben, sondern die dazugehörige id-Nummer. Die Tabelle "art" sieht so aus:

artid sorte
1 Essen
2 Trinken
3 Schlafen
usw.

In meiner Auswahlliste steht also "Essen"/"Trinken"/"Schlafen"/etc. Wenn ich beispielsweise "Trinken" auswähle, sollte nicht der String "Trinken" in die DB bzw. Session gespeichert werden, sondern die Zahl "2".

Hier mal der Code:
PHP:
            <td width="200" class="text11"><div align="left"> 
                <select name="lebensart[]" size="3" multiple style="width:150px; height:60px;">
<?php 
$result= mysql_query("SELECT sorte FROM art order by artid ASC");
while ($row = mysql_fetch_object($result)) 
{
print "<option value=".$row->artid.">".$row->sorte."</option>";
}
?>
</select>
<?php 
if($_POST != NULL){ 
$x=1; 
foreach($lebensart as $auswahl) { 
$name_var="lok_art".$x; 
session_register($name_var); 
$$name_var=$auswahl;
} 
} 
?> 
              </div></td>

Zum testen rufe ich auf einer anderen Seite mit folgendem Code den Inhalt ab:
PHP:
 <?php echo $lok_art1; ?><br>

Trotzdem erscheint wenn ich auf "Trinken" klicke, auf der nächsten Seiten "Trinklen" und nicht die "2", obwohl ich ja print "<option value=".$row->artid.">".$row->sorte."</option>"; geschrieben habe? :confused:

Ich hoffe man hat mein Problem verstanden. Danke für jede Hilfe.
Grüsse!
 
Kleiner Schlampigkeitsfehler im SELECT-Statement ;>
PHP:
<?php 
$result= mysql_query("SELECT artid,sorte FROM art order by artid ASC");
while ($row = mysql_fetch_object($result)) 
{
//...
}
 
Hallo und vielen Dank.
Stimmt. Jetzt funktioniert es.

Kann mir noch jemand sagen, wie ich den Code ändern muss, damit mehrere Werte von der Auswahlliste in DB bzw. Session gespeichert werden? Ich kann mit der STRG-Taste mehrere Werte auswählen. Trotzdem wird mir aber nur einer gespeichert. Wenn ich also "Essen" und "Schlafen" auswähle, sollte eine "13" gespeichert werden (die "1" von "Essen" und die "3" von "Schlafen".

Geht das? Und wenn ja, wie?
Danke!
 
Zurück