phpbar.de logo

Mailinglisten-Archive

[php] Einträge in Auswahlfeld auf selected setzten

[php] Einträge in Auswahlfeld auf selected setzten

Carl Slowinski carl at slowinski.de
Sam Okt 11 13:32:47 CEST 2003


Hallo ihr

ich hab ein Auswahlfeld, welches durch Einträge, die in der Datenbank
gespeichert sind gefüllt wird. In diesem Fall handelt es sich um Namen
von Spielen. Diese Namen werden von einem Administrator in der Datenbank
gespeichert. Den Usern soll nun die Möglichkeit gegeben werden
auszuwählen, welche Spiele sie den spielen. Das ganze habe ich so
gelöst, dass ein Auswahlmenü angezeigt wird, bei dem mehrfachauswahl
erlaubt ist. Die Daten werden dann in einem array in der Datenbank
gespeichert (es wird die ID des Spiels gespeichert, die beim Eintrag des
Spiels durch den Administrator automatisch gesetzt wurde). Klappt auch
alles. Mein Problem ist jetzt aber, dass wenn ein User sich dann wieder
in sein Profil begiebt, die Einträge im Auswahlmenü nicht ausgewählt
sind. Wenn er nun andere Daten ändert und nicht nochmals seine Spiele
auswählt, in der Datenbank gespeichert wird, dass er kein Spiel spielt.
Meines Erachtens nach wäre es am besten, wenn diejenigen Spiele, die der
User als "wird gespielt" eingetragen hat beim nächsten Aufruf des
Profils als selected angezeigt werden. Leider ist bisher jeder meiner
Versuche das richtig hinzubekommen gescheitert.
Ich habe es jetzt soweit hinbekommen, dass zwar Einträge als selected
angezeigt werden, aber ich bekomme die Einträge mehrfach ausgegeben,
also ein Spiel taucht mehrmals im menü auf und nur einer dieser
ausgegebenen Einträge ist markiert. Der Fehler liegt wohl in der
Tatsache begraben, dass ich 2 Sschleifen ineinander habe, aber wie soll
ich die voneinander ternnen? Hier mal mein Code, vielleicht hilfts ja
was ;)




<select name="games[]" multiple class="forms">
<?php
$games = unserialize($row['games']);
$query = mysql_query("SELECT distinct * FROM games ORDER BY
games_name");
while($rows = mysql_fetch_assoc($query))
{
	$games_id = $rows['games_id'];
	$games_name = $rows['games_name'];
	if(is_array($games))
	{
		foreach($games as $game)
		{
			echo "$game";
			if($game == $rows['games_id'])
			{
				$select = 'selected';
			}
			else
			{
				$select = '';
			}
			echo "<option $select value=\"$games_id\">$games_name</option>";
		}
	}
}
?>
</select>




$row['games'] ist das array, dass im Profil des user gespeichert wird.


Ich hoffe ich konnte euch mein Problem begreiflich machen und ihr könnt
mir (mal wieder ;) ) helfen.

Gruss
Carl



php::bar PHP Wiki   -   Listenarchive