# Auswahlliste mit Daten aus Datenbank füllen



## evoleena (9. September 2004)

Hallo Ihrs

Komme mal wieder nicht weiter!
Ich habe ein Formular in dem es mehrere Auswahllisten gibt. Gut versuche aber gerad mal eine hinzubekommen!

In der Auswahliste soll mit hilfe eines SelectBefehls Daten ausgelesen und darin zur Auswahl u verfügung stehen. aber irgendwie funtz das bei mir nicht!

Bisher sieht mein Quelltext so aus


```
<option>"; 
$result = mysql_query ('SELECT ansp_name, name from gast order by name', $link);
echo"</option></select></td>
```

Kann mir jemand sagen wie es richtig sein muss?


----------



## ultrakollega (9. September 2004)

Hi,

gib mal im PHP Forum bei Suche "dropdown" ein - da findest du ne Menge
für dich interessante Antworten ...

mfg

Ultra


----------



## evoleena (9. September 2004)

Habe nur keine Lösung dafür gefunden wie ich es geschrieben habe.
Ist es denn Quelltexttechnisch richtig?


----------



## Nils Hitze (9. September 2004)

Nein, das ist so wie du es geschrieben hast nicht richtig.

Es reicht nicht einfach nur eine Abfrage an die Datenbank zu schicken, 
das Ergebniss muss auch noch ausgelesen werden. 


```
#Es ist besser die SQL Abfrage in einer eigenen Variable zu speichern
#(der Übersichtlichkeit wegen)
$sql = 'SELECT ansp_name, name FROM gast ORDER BY name';
$result = mysql_query ($sql);

#Wenn du bei Echos ' statt " benutzt musst du HTML "s nicht mehr escapen
echo '<select name="test">';

#Dies ist die Schleife die die einzelnen Einträge der Tabelle durchläuft
#und jeweils eine Zeile in ein Array füllt. 
while($array = mysql_fetch_assoc($result))
{
 #Wusste jetzt nicht welche der beiden Spalten das Label ist das in einem
 #DropDown Feld angezeigt wird, im Zeifelsfalle austauschen.
 #Einfach nur den richtigen Namen bei XXX eintragen : $array['XXX']
 echo '<option value="'.$array['name'].'">'.$array['ansp_name'].'</option>';
}

echo '</select></td>';
```

Hoffe es hilft.

Hilfreiche Seiten :
[phpf]mysql[/phpf]


----------



## evoleena (9. September 2004)

> #Wenn du bei Echos ' statt " benutzt musst du HTML "s nicht mehr escapen



Damit hast du mich jetzt völlig durcheinander gebracht!

Wie muss ich das dann hier veranstalten


```
$sql = mysql_query 'SELECT name FROM gast WHERE name='".$name."'';
if (mysql_num_rows($sql) = 0)
 {
	echo'Kein Gast gefunden!';
}
```


----------



## Ben Ben (9. September 2004)

Innerhalb eines Strings mit einfachen Hockommas ' musst du aber die Einfachen hochkommes escapen, also folgernder massen


```
$sql = mysql_query('SELECT name FROM gast WHERE name=\''.$name.'\''); 

//oder

$sql = mysql_query("SELECT name FROM gast WHERE name='$name'");
```

Das Escapen also mit einem \ davor heisst nur das dieses Zeichen nicht das Ende des Strings kennzeichnet. So musst du in einem String mit ' logischerweise ' escapen wenn du es dort zum "Anzeigen" verwenden willst. Gleiches gilt wenn du in einem String mit " auch " verwenden willst:
echo "Jetzt zeige ich ein\" an";
echo 'Jetzt zeige ich ein \" an";
echo "Wegen der \" brauche ich die ' nicht zu escapen";
echo 'Wegen der \' brauche ich die " nicht zu escapen';

Bei Strings in ' ist jedoch zu beachten, das Variablen nicht "aufelöst werden;

echo '  $test ';   gibt   $test aus.
echo " $test ";  gibt den Inhalt der Varibale $test aus.

Workaraound:   echo 'Jetzt gebe ich den Inhalt der Variable aus: '.$test;


Alle Unklarheiten beseitigt?


----------

