Combobox mit SQL Daten füllen

cyberblade

Grünschnabel
Hallo zusammen,

ich bin grad dabei mich in PHP einzuarbeiten und stehe nun vor einem kleinen Problem (ok. ich hab noch viel mehr aber das is grad akut...)

Und zwar hab ich eine MySQL Datenbank und die Verbindung und das auslesen klappt auch soweit schon.
Nun hab ich allerdings das Problem, das ich (später auch mehrere) Comboboxen benötige, die per SQL gefüllt werden.

Bislang versuche ich das so:

PHP:
<?php

echo '<select name="KD_Name>"';
$ergebnis = mysql_query("SELECT `KD_Name` FROM `tbl_Kunden`");
while($row = mysql_fetch_array($ergebnis))
{
   echo '<option>'.$row['KD_Name'].'</option>';
}
</select>
mysql_close;
?>

Habe hier im Forum gelesen, dass es genau so funktionieren soll, allerdings bleibt das entsprechende div damit einfach leer, als würde die Datei garnicht erst existieren.

Die db.php mit dem Connectionstring wird wie in den anderen php Dateien included. Das auslesen der Daten klappt auch schon, nur bekomm ich keine Combobox hin. Also kann ich Datenbankanmeldung und verbindungsprobleme soweit schonmal ausschließen. Mittlerweile hab ich so viel hin und her probiert, dass ich nun einfach nicht weiterkomme. Alles was ich bei Google gefunden hab in diversen Foren, klappt einfach nicht.

Falls es wichtig ist, ich nutze:

PHP Version 5.1.6

Mysql:
Server Version: 5.0.95
Protokoll-Version: 10

phpMyAdmin - 2.11.11.3
MySQL-Client-Version: 5.0.95
Verwandte php-Erweiterungen: mysql

Habt ihr evtl auch gute Vorschläge wie man dieses ganze "PHP Zeug" ordentlich debuggen kann? Habe bislang immer nur VB programmiert, und hätte gern genau so einen debugger, an dem ich Haltepunkte setzen kann und beim Halt dann diverse Variablen (also den entsprechenden Wert) mit Maus-over direkt sehen kann.

Wäre super wenn Ihr da noch eine Idee hättet.

Gruß

Cyberblade
 
Versuch es mal so:

PHP:
<?php
echo '<select name="KD_Name">';

$ergebnis = mysql_query("SELECT `KD_Name` FROM `tbl_Kunden`");

while($row = mysql_fetch_array($ergebnis))
{
   echo '<option value="' .$row['KD_Name'] .'">'.$row['KD_Name'].'</option>';
}

echo '</select>';

mysql_close;
?>

Nachtrag: Was das Debuggen angeht, schau mal diese Seite(n) hier an. Xdebug ist eine kostenlose Erweiterung die in viele Editoren eingebaut werden kann.
 
Zuletzt bearbeitet:
Hi Tombe,

vielen Dank für die schnelle Hilfe. Funktioniert bestens. Aber ich würde das ganze auch gerne verstehen, daher noch die Frage: Warum muss ich das doppelt schreiben?

Dann wäre das für jeden Datensatz ja folgendermassen:

'<option value='Person1'>Person1</option>';
'<option value='Person2'>Person2</option>';
usw.

Geht das "selected" nachher auf den value (also den "ersten Einsatz der Variablen") und das angezeigte in der Combobox auf das 2te? So würde ich mir das nun erstmal erklären aus reiner Logik.

XDebug werde ich mir mal ansehen. Danke für die Tips!!
 
Den VALUE-Wert kannst du eigentlich weglassen und es so schreiben wie du es hattest.

Oft ist es halt so das du z.B. Herr, Frau, ... anzeigen lässt aber nicht den Wert als Wort sondern als Zahl z.B. 1, 2, ... gespeichert hast.

PHP:
<select name='liste'>
    <option value='' selected>Bitte Auswählen</option>
    <option value='1' <?php if(@$_POST['liste'] == '1') echo 'selected'; ?>>Herr</option>
    <option value='2' <?php if(@$_POST['liste'] == '2') echo 'selected'; ?>>Frau</option>
</select>

In diesem Fall musst du es so angeben.

Hier wird jetzt auch der übergebene Wert geprüft und dementsprechend der Eintrag markiert. Der erste Eintrag ist als Standard und erstmal ausgewählt, wird dann aber überschrieben wenn etwas gewählt wurde.
 
Zuletzt bearbeitet:
Zurück