Auswahlliste aus Datenbank ziehen

yuro

Erfahrenes Mitglied
Servus,

und zwar hab ich mir ein HTML Formular erstellt, wo es möglich ist, Daten einzulesen und in die Datenbank zu schreiben.

Bei Manchen Punkten gibt es ein Textfeld sowie auch ein Auswahlfeld (DropDown).

Die Auswahlfelder sollen jeweils aus den Datenbanktabellen die Einträge anzeigen. In dem Fall zb. Bundesländer.

Bei mir ist das Problem das er die Felder aus der Datenbank nicht ausliest, d.h. das DropDown Menü ist leer.

Hier ein Code Abschnitt.
PHP:
<head>
<?php
	if(isset($_POST["gesendet"])) {
		mysql_connect("", "root");
		mysql_select_db("intern");
		
		$sqlab = "INSERT firmen(firmenname, strasse, bundesland) VALUES . "('" . $_POST["fn"] . "', " . "'" . $_POST["strasse"] . "', " . $_POST["bl"] . "') ";
?>
</head>

PHP:
<form action="test.php" method="post">
	<p><input name="fn" /> Firmenname</p>
        <p><input name="strasse" /> Strasse</p>
	<p><select name="bl" />
		<?php
      		$select = "SELECT * FROM bundesland";
      		$query = mysql_query($select);
      		
			while ($array = mysql_fetch_array($query)) {
            	echo '<option value="'.$array["id"].'">'.$array["bundesland"].'</option>';
      		}
		?>
	   </select> Bundesland</p>
...

Woran kanns liegen?
 
Wird die Verbindung zur Datenbank nur hergestellt wenn der IF-Block des obigen Abschnitts durchlaufen wird?

Der Code für die Selectbox ist nämlich richtig, daran liegt es nicht.

Schau dir mal den Quelltext der Seite an vielleicht siehst du da irgendwelche Fehlermeldungen innerhalb der Selectbox.
 
Wird die Verbindung zur Datenbank nur hergestellt wenn der IF-Block des obigen Abschnitts durchlaufen wird?

ja also ich hab das jetzt mal als test nur im if-block reingeschrieben? Aber das connecten stimmt doch oder nicht?


@yaslaw hab ich auch schon versucht bringt auch nichts.. hmmm
 
Zuletzt bearbeitet:
Also ich rede jetzt von den Teil wo die Auswahlliste gefüllt werden soll (dannach hast du ja gefragt).

In diesem Codeabschnitt wird niergendwo eine Verbindung zur Datenbank hergestellt, somit können die Daten auch nicht ausgelesen und in die Auswahlliste eingetragen werden.

Der IF Block wird ja nur durchlaufen wenn das Formular abgeschickt wurde.


yaslaw meinte wohl das die Anweisung falsch ist. Versuche es mal so:

PHP:
$sqlab = "INSERT firmen(firmenname, strasse, bundesland) VALUES ('" . $_POST["fn"] . "', '" . $_POST["strasse"] . "', " . $_POST["bl"] . ")";
 
Zuletzt bearbeitet:
@yaslaw hab ich auch schon versucht bringt auch nichts.. hmmm
Dann hast du falsch hier ins Forum kopiert. Dein Code enthält ganz klar ein Fehler. Das sehe ich ohne das ich ihn laufen lassen muss.

Alles was nach '$sqlab = "...";' kommt wird falsch intepretert.

Zudem, gibt es dir eine Fehlermeldung von der DB (Wie du die herausfinden kannst, findest du im Tutorial)?
 
ich dank euch beiden sehr! Tombe das mit dem if-block war der fehler.. muss es nach dem connecten erst einfügen! jetzt funktionierts :)))
 
Noch ne kurze Frage.. und zwar wollt ich wissen wenn ich das Formular ausgefüllt habe und abschicke was der denn von der select anweisung an die datenbank übergibt.. die ID oder den Inhalt sozusagen? weil momentan wenn ich das ausgefüllte formular abschicken will kommt meine else anweisung das der Datensatz nicht eingetragen wurde in die Datenbank!?
 
PHP:
<head>
<?php
        mysql_connect("", "root");
        mysql_select_db("intern");

if(isset($_POST["gesendet"])) {        
        $sqlab = "INSERT firmen(firmenname, strasse, bundesland) VALUES . "('" . $_POST["fn"] . "', " . "'" . $_POST["strasse"] . "', " . $_POST["bl"] . "') ";

		if(mysql_affected_rows() > 0)
			echo "<p>Es wurde 1 Datensatz hinzugef&uuml;gt</p>";
		else
			echo "<p>Es wurde kein Datensatz hinzugef&uuml;gt</p>";
	}
?>
</head>

und der andere code ist gleich geblieben..(siehe oben)
 
Zurück