• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Dropdown Auswahl ausgeben bzw an DB senden

Mathmos

Neues Mitglied
Hallo,

ich versuche gerade die Auswahl, von einem Dropdown, das aus einer Mysql DB erstellt wird, in einer Variable zu speichern und dann ausgeben zu lassen.
Die Ausgabe dient eigentlich nur als visualisierung und soll später an die DB gesendet werden.
Leider Funktioniert es nicht.

Mein bisheriger Code sieht so aus:

PHP:
<?php

include("daten2.php");

echo "<select size='1' name='Namensliste' class='eingabetext'>";
$ergebnis = mysql_query("SELECT Name FROM Bewohner ORDER BY UserID");
echo "<option value=''>Name wählen</option>";
while ($datensatz = mysql_fetch_array($ergebnis))
{
    echo "<option value=" . $datensatz['UserID'] . ">";
    echo $datensatz['Name'];
    echo "</option>\n";
}
echo "</select>\n";


if ($_POST['submit'])
{
    $name=$_POST['Namensliste'];
    echo $name;
    
    $ergebnis = mysql_query("SELECT UserID FROM Bewohner WHERE Name = 'tobsn'");
    while ($datensatz = mysql_fetch_array($ergebnis))
    {
        echo "UserID:\n\n";
        echo $datensatz['UserID'];
    }
}

echo "
<form id='kontaktformular' name='kontaktformular' method='post'>
<input type='submit' value='Ja, ich hab geputzt'>
<input type='hidden' name='submit' value='1' />
</form>";

?>
 
Gesagt getan, aber leider wird mir die Auswahl noch nicht angezeigt.


PHP:
<?php

include("daten2.php");

echo"
<form id='kontaktformular' name='kontaktformular' method='post'>
<select size='1' name='Namensliste' class='eingabetext'>";
$ergebnis = mysql_query("SELECT Name FROM Bewohner ORDER BY UserID");
echo "<option value=''>Name wählen</option>";
while ($datensatz = mysql_fetch_array($ergebnis))
{
    echo "<option value=" . $datensatz['UserID'] . ">";
    echo $datensatz['Name'];
    echo "</option>\n";
}
echo "</select>\n";


if ($_POST['submit'])
{
    $name=$_POST['Namensliste'];
    echo $name;
    
    $ergebnis = mysql_query("SELECT UserID FROM Bewohner WHERE Name = 'tobsn'");
    while ($datensatz = mysql_fetch_array($ergebnis))
    {
        echo "UserID:\n\n";
        echo $datensatz['UserID'];
    }
}

echo "
<input type='submit' value='Ja, ich hab geputzt'>
<input type='hidden' name='submit' value='1' />
</form>";

?>
 
Stimmt denn das SQL-Statement? Kann es sein, dass es hier einen Fehler gibt? Prüfe das mit mysql_error().
 
Fehler gefunden, beim query habe ich ja bei SELECT name stehen, dies habe ich nun mit nem * ersetzt und nun gehts. Verstehen tu ich das zwar nicht aber naja...
 
name ist auch ein MySQL-reserviertes Wort. Wenn Du so etwas als Spaltenname verwendest, musst Du diese Bezeichnung zwingend maskieren. Das geht mit Backticks in der Form:

Code:
SELECT `name` ...

Aus dem Grund gewöhne ich mir auch andere Bezeichnungen an, meist deutsche da diese nicht im MySQL-"Wortschatz" vorkommen. Allerdings ist es so oder so ratsam alle Spaltennamen mit Backticks zu umgeben.
 
Zurück
Oben