PHP select name Ausgabe

overflow

Member of Honour
Habo <3


Habe eine Frage bezüglich des HTML Tags "select name".
Ich überlege gerade, wie ich eine Auswahlbox erstellen soll.
In einer Datenbanktabelle habe ich einige Städte. Diese könnte
man per while-Schleife alle ausgeben. Sprich der ganze Code
wäre in der .php.

Die zweite Alternative wäre das man in einem HTML Dokument die
Auswahlpunkte selber einträgt und die Parameter per "form action"
an die gewünschte .php übermittelt.

Welche Vor- und Nachteile haben diese zwei Alternativen ?

PS: Kann mir jemand behilflich sein select name per Schleife auszugeben ?
PHP:
while ($row = mysql_fetch_assoc($stadt)) {
    echo $row["Ort"]; // Das müsste man irgendwie umschreiben, aber bekomme jedes mal Syntax Probleme
}
 
Hi erstmal!
Also ich mach das in meiner Anwendung so:

PHP:
$djs = recieveData("SELECT * FROM irgendwas"); //  Datenbankabfrage
$dj_switch = "<select name='FK_User_ID' id='required'><option selected>[ Choose one ]</option>";
foreach($djs as $dj){
	$dj_switch .= "<option value='".$dj['UserID']."'>".$dj['Name']."</option>";
}    
$dj_switch .= "</select>";

Als Datenbankabfrage verwende ich das:
PHP:
public function receiveData($Statement)
{   
	if (!$result = mysql_query($Statement)) { 
		throw new Exception("Ungültige Abfrage (<font style='color:red;font-weight:bold;'>".$Statement."</font>): ".mysql_error());
	}
	else
		{
			//$resultset = mysql_query($Statement);
			while ($row = mysql_fetch_assoc($result)) {
				$rs[] = $row;
			}
			return $rs;
		}
	}
}

Als $Statement kannste der Funktion einfach dein "SELECT * FROM irgendwas" geben.
Da ich das so generell wie möglich für dich gehalten habe müsstest du den Code natürlich testen, da ich den jetzt gerade einfach ohne Parser runtergetippt habe.

Das $dj_switch wäre dann praktisch deine zusammengebaute DropDown-Box.
Kleinere Anpassung wie die Zuweisung der values etc. musst du natürlich anhand deines DB-Modells anpassen.
 
Zuletzt bearbeitet:
Danke für die Hilfe aber das scheint mir zu komplex.
Habe Vielmehr an so etwas gedacht:

PHP:
echo "<select name='stadt' size='1'>";

 while ($row = mysql_fetch_assoc($stadt)) {
    echo "<option value='$row[0]'";
}

Liefert mir nur leere Felder :D
 
Danke für die Hilfe aber das scheint mir zu komplex.
Habe Vielmehr an so etwas gedacht:

PHP:
echo "<select name='stadt' size='1'>";

 while ($row = mysql_fetch_assoc($stadt)) {
    echo "<option value='$row[0]'";
}
Liefert mir nur leere Felder :D

PHP:
echo "<select name='stadt' size='1'>";

 while ($row = mysql_fetch_assoc($stadt)) {
    echo "<option value='some_value'>$row[0]</option>";
}
echo "</select>";

selfhtml - Auswahl (select)
 
Zuletzt bearbeitet:
Mit (X)Html, Css habe ich keine Probleme, außer wenn ich es
in ein PHP Code einbauen muss (echo oder print) :D

Muss mir nochmal die Syntax anschauen.

Und wie sieht es wie oben beschrieben mit den Vorteilen und Nachteilen aus ?
Aus der Sicht des Servers...
 
Habe eine Frage bezüglich des HTML Tags "select name".
Ich überlege gerade, wie ich eine Auswahlbox erstellen soll.
In einer Datenbanktabelle habe ich einige Städte. Diese könnte
man per while-Schleife alle ausgeben. Sprich der ganze Code
wäre in der .php.

Die zweite Alternative wäre das man in einem HTML Dokument die
Auswahlpunkte selber einträgt und die Parameter per "form action"
an die gewünschte .php übermittelt.

Welche Vor- und Nachteile haben diese zwei Alternativen ?

Also die erste Möglichkeit ist durch den PHP Code beschrieben, der hier bereits präsentiert wurde, sehe ich das richtig?

Die Alternative ist mir allerdings nicht ganz klar ...
Dort sind die Namen bereits vollständig in einem HTML Dokument festgehalten? Sie kommen also nicht aus einer Datenbank.
Oder soll der Name der Stadt in einem Textfeld eingegeben werden, damit man ihn dann anhand des Namens weitere Informationen aus der DB serialisieren kann?
 
Glaube es war einfach nur zu spät. Habe das Problem bzw. die Frage
selbst beantworten können. Die Gehirnzellen laufen halt ab 12 Uhr Mitternachts
stets auf Standby.

Den Code von eben habe ich so strukturiert.

PHP:
 function db_field_out ($db_field, $mysql_q, $field_name, $field_name_out)
  {
    echo "$field_name_out: <select name='$field_name' size='1'>";
    while ($row = mysql_fetch_assoc($mysql_q))
    {
      echo "<option value='some_value'>$row[$db_field]</option>";
    }
    echo "</select>";
    echo "<br>";
  }

In meiner Auswahlliste werden auch Doppelteeeinträge angezeigt.
Ist ja auch logisch, da die while Schleife alles durchgeht.
z.B

Berlin
Düsseldorf
Düsseldorf
Essen
Köln
Wuppertal


Die Sortierung ist auch korrekt aber er selektiert automatisch die
letzte Auswahlmöglichkeit in der Liste (Wuppertal).
Was ist der Grund dafür ?
 
Zurück
Oben