Wie kann man die Ergebnisse einer MYSQL-Abfrage in "ein" Drop-Down Menü bringen???

Blaschki

Erfahrenes Mitglied
Guten Morgen

Ich habe ein mehr oder weniger großes Problem, und im Forum bisher keine Antwort dazu gefunden.
Ich habe eine DB mit zwei Tabellen: (firmen, kontakt)
ich will jetzt, wenn man einen neuen Kontakt eingibt, das es da ein Drop-Down-menü gibt, wo alle Firmen aus der TB Firmen drinen stehen.

Zur zeit erzeugt das für jede Firma eine eigene Eingabemaske (funzt zwar, sieht aber nicht gut aus)

PHP:
<html>
<head>
<title>Personendaten
</title>
<link rel="stylesheet" type="text/css" href="format.css">
</head>
<body>
Geben sie die Daten ein!
<?php
echo "<form action=\"input_a.php\" method=\"post\">\n";

$verbindung = @mysql_connect("localhost","root","????");
if (!$verbindung) {
echo "Keine verbindung möglich - der Server ist down \n";
exit;
    }

mysql_select_db("adressen");

$abfrage="SELECT * FROM firmen ORDER by f_name ASC";
$ergebnis=mysql_query($abfrage);
while($zeile = mysql_fetch_array($ergebnis))
{





echo "<table border=\"0\" align=\"left\" width=\"380\" bgcolor=\"#CCFFFF\">\n";
echo "<tr>\n";
echo "<th align=\"left\" width=\"150\">Bezeichnung</th>\n";
echo "<th align=\"left\" width=\"100\">Wert</th>\n";
echo "</tr>\n";

 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Name:</td><td> <input type=\"TEXT\" size=\"25\" name=\"name\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Vorname:</td><td><input type=\"TEXT\" size=\"25\" name=\"vorname\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Firma_ID:</td><td><select name=\"f_id_a\" size=\"1\" size=\"25\"><option>Firma</option>
<option value=\"$zeile[F_ID]\">$zeile[f_name]</option>
<option value=\"$zeile[F_ID]\">$zeile[f_name]</option></select></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Telefon:</td><td><input type=\"TEXT\" size=\"25\" name=\"tel\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Handy:</td><td><input type=\"TEXT\" size=\"25\" name=\"mobil\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Telefon Privat:</td><td><input type=\"TEXT\" size=\"25\" name=\"telprivat\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Telefax:</td><td><input type=\"TEXT\" size=\"25\" name=\"fax\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">E-Mail:</td><td><input type=\"TEXT\" size=\"25\" name=\"email\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Strasse:</td><td><input type=\"TEXT\" size=\"25\" name=\"str\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Ort:</td><td><input type=\"TEXT\" size=\"25\" name=\"ort\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">PLZ:</td><td><input type=\"TEXT\" size=\"5\" name=\"plz\" maxlength=\"5\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Bemerkungen:</td><td><textarea name=\"memo\" rows=\"10\" cols=\"25\">Bemerkungen</textarea></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Geburtstag (yyyymmdd)</td><td><input type=\"TEXT\" size=\"25\" name=\"geb\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Land:</td><td><input type=\"TEXT\" size=\"25\" name=\"land\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\"><input type=submit value=\"Eintragen\"></td><td><input type=\"reset\" name=\"freset\" value=\"RESET\"></FORM></td>\n";
 echo "</tr>\n";
 echo "</table>\n";

}
mysql_close($verbindung);
?>
</body>
</html>

Da ist das Problem:

PHP:
echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Firma_ID:</td><td><select name=\"f_id_a\" size=\"1\" size=\"25\"><option>Firma</option>
<option value=\"$zeile[F_ID]\">$zeile[f_name]</option>
<option value=\"$zeile[F_ID]\">$zeile[f_name]</option></select></td>\n";
 echo "</tr>\n";

kann mir jemand dazu helfen?
DANKE schon mal im Vorraus.
 
Zuletzt bearbeitet von einem Moderator:
-

Du nimmst dein komplettes Formular erstmal aus der Schleife heraus. In der Schleife lässt du dann nur noch die einzelnen Option-Tags und füllst somit deine Select-Box.
 
ES FUNZT

hier mal für alle zum mitdenken der funzente CODE:

PHP:
<html>
<head>
<title>Personendaten
</title>
<link rel="stylesheet" type="text/css" href="format.css">
</head>
<body>
Geben sie die Daten ein!
<?php
echo "<form action=\"input_a.php\" method=\"post\">\n";

$verbindung = @mysql_connect("localhost","root","????");
if (!$verbindung) {
echo "Keine verbindung möglich - der Server ist down \n";
exit;
    }

mysql_select_db("adressen");

echo "<table border=\"0\" align=\"left\" width=\"380\" bgcolor=\"#CCFFFF\">\n";
echo "<tr>\n";
echo "<th align=\"left\" width=\"150\">Bezeichnung</th>\n";
echo "<th align=\"left\" width=\"100\">Wert</th>\n";
echo "</tr>\n";

 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Name:</td><td> <input type=\"TEXT\" size=\"25\" name=\"name\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Vorname:</td><td><input type=\"TEXT\" size=\"25\" name=\"vorname\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Firma_ID:</td><td><select name=\"f_id_a\" size=\"1\" size=\"25\"><option>Firma</option>\n";

$abfrage="SELECT * FROM firmen ORDER by f_name ASC";
$ergebnis=mysql_query($abfrage);
while($zeile = mysql_fetch_array($ergebnis))
 {
 echo "<option value=\"$zeile[F_ID]\">$zeile[f_name]</option>\n";}
 echo "</select></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Telefon:</td><td><input type=\"TEXT\" size=\"25\" name=\"tel\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Handy:</td><td><input type=\"TEXT\" size=\"25\" name=\"mobil\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Telefon Privat:</td><td><input type=\"TEXT\" size=\"25\" name=\"telprivat\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Telefax:</td><td><input type=\"TEXT\" size=\"25\" name=\"fax\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">E-Mail:</td><td><input type=\"TEXT\" size=\"25\" name=\"email\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Strasse:</td><td><input type=\"TEXT\" size=\"25\" name=\"str\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Ort:</td><td><input type=\"TEXT\" size=\"25\" name=\"ort\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">PLZ:</td><td><input type=\"TEXT\" size=\"5\" name=\"plz\" maxlength=\"5\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Bemerkungen:</td><td><textarea name=\"memo\" rows=\"10\" cols=\"25\">Bemerkungen</textarea></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Geburtstag (yyyymmdd)</td><td><input type=\"TEXT\" size=\"25\" name=\"geb\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\">Land:</td><td><input type=\"TEXT\" size=\"25\" name=\"land\"></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "<td bgcolor=\"#FFAA00\"><input type=submit value=\"Eintragen\"></td><td><input type=\"reset\" name=\"freset\" value=\"RESET\"></FORM></td>\n";
 echo "</tr>\n";
 echo "</table>\n";


mysql_close($verbindung);
?>
</body>
</html>
 
Habe das mal nach dem Code von Blaschki bei mir auch versucht, leider geht's bei mir nicht:

PHP:
<td align="left" width="160" valign="middle" height="40">&nbsp;Server:&nbsp;&nbsp;<select name="name">
					<?php
					
					$abfrage="SELECT ser_name FROM server";
					$ergebnis=mysql_query($abfrage);
					while($zeile = mysql_fetch_array($ergebnis))
					{
					echo "<option value=\"$zeile[name]\">$zeile[ser_name]</option>\n";
					}
					?>					
					</select></td>

Vielleicht hat ja einer ne Ahnung, woran's liegt. :(



EDIT: Sorry, funzt doch richtig. Meine Datenbankverbindung war trotz korrekt angezeigter Meldungen nicht vorhanden.
 
Zuletzt bearbeitet:
hallo

ich sehe es woran es liegt!

PHP:
echo "<td bgcolor=\"#FFAA00\">Firma_ID:</td><td><select name=\"f_id_a\" size=\"1\" size=\"25\"><option>Firma</option>\n";

$abfrage="SELECT * FROM firmen ORDER by f_name ASC";

$ergebnis=mysql_query($abfrage);

while($zeile = mysql_fetch_array($ergebnis))

 {

 echo "<option value=\"$zeile[F_ID]\">$zeile[f_name]</option>\n";}

 echo "</select></td>\n";

du beginnst mit keinem "<select>".
 
warte hier ist dein teil

PHP:
<td align="left" width="160" valign="middle" height="40">&nbsp;Server:&nbsp;&nbsp;<select name="name">

                    <?php

                    <select>

                    $abfrage="SELECT * FROM server"; // da du ja mehr asl nur ser_ame hast (du hast auch "name")

                    $ergebnis=mysql_query($abfrage);

                    while($zeile = mysql_fetch_array($ergebnis))

                    {

                    echo "<option value=\"$zeile[name]\">$zeile[ser_name]</option>\n";

                    }

                    ?>                    

                    </select></td>

so muss es funzen
 
Hallo,

ich habe auch so ein Drop-Down Menü, welches auch wunderbar funktioniert!
Mit diesem Script rufe ich URL´s aus meiner Datenbank ab,die von Internet Radio Anbietern stammen.
Die jeweils ausgewählte URL, wird dann in ein Player Script geladen und der Player fängt an die Sendung des Radios zu spielen.
Da die URL´s aber verschiedene Dateiendungen haben, habe ich folgendes Problem.

Die einzelnen Sender, arbeiten entweder mit dem Real Media oder dem Windows Media Player.Nun ist es aber so, daß alle URL´s in z.B. das Script für den Real Media Player geladen werden. Dadurch können dann die Sender, die eigendlich das Script für den Win. Media Player benötigen, nicht abgespielt werden!

Nun ist die Frage. Wie kann ich in dem Drop-Down Menü noch eine Abfrage einbauen, so das die entsprechende URL wahlweise in das Real Player Script bei einer Dateiendung von .smil, .rm u.s.w , oder in das Media player Script bei einer .wma, .asx u.s.w. Endung geladen wird?

In meiner Datenbank, habe ich dafür schonmal zusätzlich eine Spalte angelegt in der dann RP für Real Player und MP für Media Player steht.
Nur wie ich jetzt die Abfrage realisieren kann, weis ich nicht!

Hat dazu jemand eine etwas ausführlichere Antwort?

Gruß Diebels
 
Zurück