mysql Werte in Pulldown Menü einfügen
Moderatoren: crack, Krüsty, Marwin
Hallo,
bin ein absoluter Neuling in Sachen php.
Ich möchte gerne Werte aus meiner MySql Datenbank in ein Pulldown Menü einfügen und von diesem Menü aus die nächsten Werte aus der Datenbank Tabelle in einer neuen Datei weiterverarbeiten lassen.
Die Datenbank besteht aus 3 Werten die eingegeben werden.
id, name, url
Hier ist mal der Quelltext zum Menü den ich probiert habe. Dieser gibt aber nur eine Fehlermeldung beim Aufruf aus.
Hier die Fehlermeldung
Parse error: parse error, unexpected T_VARIABLE in E:\wampp-0.2.1c\htdocs\Versuch_mit_Radio\db_test.php on line 9
Denke mal das PHP da irgendwas nicht versteht.
Der Menü Q.text
[HTML]
[BODY]
[FORM]
[SELECT NAME="auswahl"]
[?php
include ("config.php");
$sql = "SELECT * FROM sender ORDER BY id"
$result = mysql_db_query($database,$sql);
$rows = mysql_num_rows($result);
$i = 0;
while ($i [$rows) {
$arr = mysql_fetch_array($result);
$id = $arr["id"];
$name = $arr["name"];
echo "[OPTION VALUE=\"$id\"]$name";
$i++;}[/OPTION]
?]
[/SELECT][INPUT TYPE="SUBMIT" VALUE="go"]
[/FORM]
[/BODY]
[/HTML]
Also, aus der DB Tabelle soll der Wert id in den Value Bereich geschrieben werden.Beim öffnen des Menüs, sollen dann die Namen aus der Tabelle im Menü angezeigt werden.
Kann mir hierzu jemand helfen?
Gruß Rudi
bin ein absoluter Neuling in Sachen php.
Ich möchte gerne Werte aus meiner MySql Datenbank in ein Pulldown Menü einfügen und von diesem Menü aus die nächsten Werte aus der Datenbank Tabelle in einer neuen Datei weiterverarbeiten lassen.
Die Datenbank besteht aus 3 Werten die eingegeben werden.
id, name, url
Hier ist mal der Quelltext zum Menü den ich probiert habe. Dieser gibt aber nur eine Fehlermeldung beim Aufruf aus.
Hier die Fehlermeldung
Parse error: parse error, unexpected T_VARIABLE in E:\wampp-0.2.1c\htdocs\Versuch_mit_Radio\db_test.php on line 9
Denke mal das PHP da irgendwas nicht versteht.
Der Menü Q.text
[HTML]
[BODY]
[FORM]
[SELECT NAME="auswahl"]
[?php
include ("config.php");
$sql = "SELECT * FROM sender ORDER BY id"
$result = mysql_db_query($database,$sql);
$rows = mysql_num_rows($result);
$i = 0;
while ($i [$rows) {
$arr = mysql_fetch_array($result);
$id = $arr["id"];
$name = $arr["name"];
echo "[OPTION VALUE=\"$id\"]$name";
$i++;}[/OPTION]
?]
[/SELECT][INPUT TYPE="SUBMIT" VALUE="go"]
[/FORM]
[/BODY]
[/HTML]
Also, aus der DB Tabelle soll der Wert id in den Value Bereich geschrieben werden.Beim öffnen des Menüs, sollen dann die Namen aus der Tabelle im Menü angezeigt werden.
Kann mir hierzu jemand helfen?
Gruß Rudi
- Marwin
- Moderator
- Beiträge: 307
- Registriert: Donnerstag 8. Mai 2003, 21:19
- Wohnort: Seelow, Deutschland
- Kontaktdaten:
Was mir gerade ins Auge fällt, du hast einen weiteren Fehler in deinem PHP-Code. Und zwar befindet sich das schließende OPTION-Tag nicht innerhalb des ECHO-Befehls. Dieser Code läuft fehlerfrei und ist zudem etwas kürzer und übersichtlicher:
1. Wenn du lediglich die Werte der Spalten ID und NAME benötigst, dann hole nicht die Werte aller (durch das *) Spalten. (Das klingt jetzt wie ein Vorwurf, das soll er aber nicht sein) Stell dir nur mal vor, du arbeitest später mit sehr großen Tabellen mit sehr viel mehr Spalten. Wenn du dann die Werte einer Spalte holen möchtest, dann ist das Auslesen einer Spalte doch deutlich schneller aus das Auslesen aller Spalten.
2. list($id, $name) = mysql_fetch_row($result) holt aus dem Ergebnis (in $result) nacheinander jede von deiner SELECT-Anweisung zurückgelieferte Zeile und speichert die Inhalte der beiden Spalten in den Variablen ID und NAME.
3. Möglicherweise hast du das einfach vergessen zu posten: Das FORM-Tag ist unvollständig, darin fehlen noch die Angaben ACTION und METHOD.
Marwin
Code: Alles auswählen
<HTML>
<BODY>
<FORM>
<SELECT NAME="auswahl">
<?php
include ("config.php");
$sql = "SELECT id, name FROM sender ORDER BY id"
$result = mysql_db_query($database,$sql);
while (list($id, $name) = mysql_fetch_row($result))
{
echo "<OPTION VALUE=\"$id\">$name</OPTION>";
}
?>
</SELECT><INPUT TYPE="SUBMIT" VALUE="go">
</FORM>
</BODY>
</HTML>
2. list($id, $name) = mysql_fetch_row($result) holt aus dem Ergebnis (in $result) nacheinander jede von deiner SELECT-Anweisung zurückgelieferte Zeile und speichert die Inhalte der beiden Spalten in den Variablen ID und NAME.
3. Möglicherweise hast du das einfach vergessen zu posten: Das FORM-Tag ist unvollständig, darin fehlen noch die Angaben ACTION und METHOD.
Hallo Marwin,
danke Dir erstmal für deine Ausführungen.
Habe das angepasste Script mal so hier rauskopiert und auf meinem Server probiert.
Leider bekomme ich nur diese Fehlermeldung:
Parse error: parse error, unexpected T_VARIABLE in E:\wampp-0.2.1c\htdocs\Versuch_mit_Radio\db_test.php on line 10
Line 10, ist dieser String.
$result = mysql_db_query($database,$sql);
Wie gesagt, bin ein absoluter Neuling in PHP und MySql. Deshalb weis ich nicht woran das liegen kann. Vieleicht ist die Tabelle selber daran Schuld.
Die Tabelle habe ich mit folgendem Script erstellt.
[?
include ("config.php");
mysql_query("CREATE TABLE sender (
id int(255) NOT NULL auto_increment,
name varchar(100) NOT NULL,
url varchar(250) NOT NULL,
PRIMARY KEY (id)
);");
mysql_close();
echo "Die Tabelle wurde angelegt";
?]
Die Tabelle ist auch so wie in dem Script vorgegeben erstell worden.
Habe andere Scripts probiert die mit MySQL einwandfrei auf meinem Rechner laufen.
Nur für das was ich machen will, habe ich nichts passendes im Netz gefunden und nun muß ich selber ran.
Das Form Tag ist noch nicht da. Weil ich ehrlich gesagt noch keinen blassen Dunst habe, wie ich aus diesem Pulldown Menü die URL´s aus der Datenbank in eine neue Seite übergebe.
Das müsste aber irgendwie so aussehen, wenn ich nicht irre.
[form method="post" value="$url" action="player.php"]
Aber diese Angaben werden wohl, - damit die Übergabe der URL funktioniert - , etwas dürftig sein.
Freue mich schon auf die nächste Antwort.
Gruß Rudi
danke Dir erstmal für deine Ausführungen.
Habe das angepasste Script mal so hier rauskopiert und auf meinem Server probiert.
Leider bekomme ich nur diese Fehlermeldung:
Parse error: parse error, unexpected T_VARIABLE in E:\wampp-0.2.1c\htdocs\Versuch_mit_Radio\db_test.php on line 10
Line 10, ist dieser String.
$result = mysql_db_query($database,$sql);
Wie gesagt, bin ein absoluter Neuling in PHP und MySql. Deshalb weis ich nicht woran das liegen kann. Vieleicht ist die Tabelle selber daran Schuld.
Die Tabelle habe ich mit folgendem Script erstellt.
[?
include ("config.php");
mysql_query("CREATE TABLE sender (
id int(255) NOT NULL auto_increment,
name varchar(100) NOT NULL,
url varchar(250) NOT NULL,
PRIMARY KEY (id)
);");
mysql_close();
echo "Die Tabelle wurde angelegt";
?]
Die Tabelle ist auch so wie in dem Script vorgegeben erstell worden.
Habe andere Scripts probiert die mit MySQL einwandfrei auf meinem Rechner laufen.
Nur für das was ich machen will, habe ich nichts passendes im Netz gefunden und nun muß ich selber ran.
Das Form Tag ist noch nicht da. Weil ich ehrlich gesagt noch keinen blassen Dunst habe, wie ich aus diesem Pulldown Menü die URL´s aus der Datenbank in eine neue Seite übergebe.
Das müsste aber irgendwie so aussehen, wenn ich nicht irre.
[form method="post" value="$url" action="player.php"]
Aber diese Angaben werden wohl, - damit die Übergabe der URL funktioniert - , etwas dürftig sein.
Freue mich schon auf die nächste Antwort.
Gruß Rudi
- Marwin
- Moderator
- Beiträge: 307
- Registriert: Donnerstag 8. Mai 2003, 21:19
- Wohnort: Seelow, Deutschland
- Kontaktdaten:
Das db_ musst du löschen. Dann funktioniert es.$result = mysql_query($database,$sql);
Der FORM-Tag sollte folgendermaßen aussehen:
Lediglich das VALUE war zu viel. Diesen Parameter gibt es im FORM-Tag nicht.[form method="post" action="player.php"]
Hi Marwin,
diese kleine Änderung im String von Line 10 hat bei mir nichts gebracht!
Bekomme immer noch die selbe Fehlermeldung.
Habe die Datenbank mit den dazugehörigen Dateien jetzt mal auf einen 2ten Lokalen Webserver übertragen.
Wollte mal testen ob es vieleicht an dem Server liegt. Aber auch dort bekomme ich die selbe Fehlermeldung ausgegeben.
Der Ordner für die Datenbank heist bei mir radlinks und die Tabelle heist Sender.
Kann es sein, daß ich die Variable $database im String von Line 10 mit dem Namen der Datenbank, etwa so $radlinks oder so "radlinks", austauschen muß?
In meinem PHP Editor wird mir die Datei als Pulldown angezeigt. Wenn ich die Datei dann aber im Browser aufrufe, bekomme ich keinen connect zur Datenbank.
Oder ist es sogar möglich, das ich die Tabelle falsch aufgebaut habe, so das PHP damit nichts anfangen kann?
Rudi
diese kleine Änderung im String von Line 10 hat bei mir nichts gebracht!
Bekomme immer noch die selbe Fehlermeldung.
Habe die Datenbank mit den dazugehörigen Dateien jetzt mal auf einen 2ten Lokalen Webserver übertragen.
Wollte mal testen ob es vieleicht an dem Server liegt. Aber auch dort bekomme ich die selbe Fehlermeldung ausgegeben.
Der Ordner für die Datenbank heist bei mir radlinks und die Tabelle heist Sender.
Kann es sein, daß ich die Variable $database im String von Line 10 mit dem Namen der Datenbank, etwa so $radlinks oder so "radlinks", austauschen muß?
In meinem PHP Editor wird mir die Datei als Pulldown angezeigt. Wenn ich die Datei dann aber im Browser aufrufe, bekomme ich keinen connect zur Datenbank.
Oder ist es sogar möglich, das ich die Tabelle falsch aufgebaut habe, so das PHP damit nichts anfangen kann?
Rudi
Hi Marwin,
habe jetzt nochmal im Script rumgepopelt und siehe da, jetzt funktioniert es!
Hier das Script:
[html]
[/head]
[style type="text/css"]
<!--
.rudistyle{
background-color: #c0c0c0;
color: #000080;
font-size: 7pt;
font-family: arial;
}
-->
[/style]
[body bgcolor="000000" text="red"]
[FORM]
[SELECT class="rudistyle" NAME="auswahl"]
[?php
include ("config.php");
$query = "SELECT id, name FROM sender";
$result = mysql_query($query);
while (list($id, $name) = mysql_fetch_row($result))
{
echo "[OPTION VALUE=\"$id\"]$name[/OPTION]";
}
?]
[/SELECT][INPUT class="rudistyle" TYPE="SUBMIT" VALUE="go"]
[/FORM]
[/BODY]
[/HTML]
Nun ist die Frage. Wie bekomme ich jetzt über das Pulldown Menü die zu der jeweiligen ID und Namen gehörige URL in eine neue andere Datei übergeben?
Rudi
habe jetzt nochmal im Script rumgepopelt und siehe da, jetzt funktioniert es!
Hier das Script:
[html]
[/head]
[style type="text/css"]
<!--
.rudistyle{
background-color: #c0c0c0;
color: #000080;
font-size: 7pt;
font-family: arial;
}
-->
[/style]
[body bgcolor="000000" text="red"]
[FORM]
[SELECT class="rudistyle" NAME="auswahl"]
[?php
include ("config.php");
$query = "SELECT id, name FROM sender";
$result = mysql_query($query);
while (list($id, $name) = mysql_fetch_row($result))
{
echo "[OPTION VALUE=\"$id\"]$name[/OPTION]";
}
?]
[/SELECT][INPUT class="rudistyle" TYPE="SUBMIT" VALUE="go"]
[/FORM]
[/BODY]
[/HTML]
Nun ist die Frage. Wie bekomme ich jetzt über das Pulldown Menü die zu der jeweiligen ID und Namen gehörige URL in eine neue andere Datei übergeben?
Rudi
- Marwin
- Moderator
- Beiträge: 307
- Registriert: Donnerstag 8. Mai 2003, 21:19
- Wohnort: Seelow, Deutschland
- Kontaktdaten:
Zunächst habe ich eine Bitte an dich. Kannst du beim nächsten Posten von PHP-Code diesen in entweder CODE oder QUOTE einschließen? (siehe die Buttons im Formular, besser ist CODE) Der Code hebt sich dann besser vom restlichen Betrag ab.
Als erstes musst du den FORM-Tag folgendermaßen erweitern:
Danach erstellst du die Datei welche du im Parameter ACTION angegeben hast, hier ist es player.php.
In diese schreibst du folgenden Inhalt:
Marwin
Als erstes musst du den FORM-Tag folgendermaßen erweitern:
Code: Alles auswählen
<form method="post" action="player.php">In diese schreibst du folgenden Inhalt:
Code: Alles auswählen
<?php
/* Hier den Code zum Herstellen der Verbindung zur Datenbank */
$sql = "SELECT url FROM sender WHERE (id = ".$_POST[auswahl].")";
$result = mysql_db_query($sql);
list($url) = mysql_fetch_row($result);
echo "URL: ".$url;
?>
Hallo,
da bin ich schon wieder!
Habe den FORM-Tag in das Menü Script eingefügt und das player.php Script erstellt.
Bekomme damit aber jetzt wieder eine Fehlermeldung.
Der Code für das Player Script sieht jetzt so aus:
Da muß wieder eine Angabe in dem Script einen falschen Wert aufweisen.
:unsure: Rudi
da bin ich schon wieder!
Habe den FORM-Tag in das Menü Script eingefügt und das player.php Script erstellt.
Bekomme damit aber jetzt wieder eine Fehlermeldung.
Code: Alles auswählen
Parse error: parse error, unexpected T_VARIABLE in E:\wampp-0.2.1c\htdocs\Versuch_mit_Radio\player.php on line 11Code: Alles auswählen
<?php
$dbname="radlinks";
$dbhost="localhost";
$dbuser="root";
$dbpass="";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
$sql = "SELECT url FROM sender WHERE (id = ".$_POST[auswahl].")"
$result = mysql_db_query($sql);
list($url) = mysql_fetch_row($result)
echo "URL: ".$url;
?>:unsure: Rudi
- Marwin
- Moderator
- Beiträge: 307
- Registriert: Donnerstag 8. Mai 2003, 21:19
- Wohnort: Seelow, Deutschland
- Kontaktdaten:
Entschuldigung, das ist mein Fehler. Ich habe in meinem letzten Beitrag gleich zwei Semikolons (die Mehrzahl von Semikolon heißt bestimmt anders, aber du weißt ja was ich meine) vergessen. Einmal in der Zeile
und dann in dieser:
:rolleyes: Marwin
Code: Alles auswählen
$sql = [B]...[/B]So, jetzt sind die Semikolen (?) da.list($url) = ...
:rolleyes: Marwin
Nabend,
ja ist doch klar was Du meinst. Hatte auch schon etwas mit den Semikolen probiert.
Aber immer verschiedene Fehlermeldungen erhalten.
Jetzt habe ich die Semikolen dort eingefügt wo du geschrieben hast und nun werden die Fehlermeldungen schon dramatischer.
Fehlermeldung 1:
Fehlermeldung 2:
Jetzt scheint die Datenbank nicht mehr zu wissen was ich von ihr will.
]]]]]]]]]]]]]]]]
Mußte mal editiern.
Habe jetzt hier noch ein $url eingefügt und die ertse Fehlermeldung ist weg!
Aus der 2ten Fehlermeldung ist jetzt diese geworden:
Leider weis ich nicht wo ich die Klammer einsetzen muß.
Habe zwar schon einige Möglichkeiten durch. Komme aber nicht wirklich weiter.
[[[[[[[[[[[[[[[[[
:blink: Rudi
ja ist doch klar was Du meinst. Hatte auch schon etwas mit den Semikolen probiert.
Aber immer verschiedene Fehlermeldungen erhalten.
Jetzt habe ich die Semikolen dort eingefügt wo du geschrieben hast und nun werden die Fehlermeldungen schon dramatischer.
Fehlermeldung 1:
Code: Alles auswählen
Warning: Wrong parameter count for mysql_db_query() in E:\wampp-0.2.1c\htdocs\Versuch_mit_Radio\player.php on line 11Code: Alles auswählen
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in E:\wampp-0.2.1c\htdocs\Versuch_mit_Radio\player.php on line 13
URL: ]]]]]]]]]]]]]]]]
Mußte mal editiern.
Habe jetzt hier noch ein $url eingefügt und die ertse Fehlermeldung ist weg!
Code: Alles auswählen
$result = mysql_db_query($sql,$url);Aus der 2ten Fehlermeldung ist jetzt diese geworden:
Code: Alles auswählen
Parse error: parse error, unexpected =, expecting ( in E:\wampp-0.2.1c\htdocs\Versuch_mit_Radio\player.php on line 13Habe zwar schon einige Möglichkeiten durch. Komme aber nicht wirklich weiter.
[[[[[[[[[[[[[[[[[
:blink: Rudi
- Marwin
- Moderator
- Beiträge: 307
- Registriert: Donnerstag 8. Mai 2003, 21:19
- Wohnort: Seelow, Deutschland
- Kontaktdaten:
Das ist ja langsam nicht mehr normal 
Kopiere doch bitte diesen Code in die Datei player.php
Bedenke, dass MySQL auf Groß- und Kleinschreibung achtet. D.h. die Tabelle sender darf nur aus Kleinbuchstaben bestehen. Wenn der MySQL-Query fehlerhaft sein sollte, dann gibt die Funktion echo mysql_error(); eine entsprechende Fehlermeldung aus.
Ich empfehle dir SelfPHP, DSP und das PHP Handbuch (auch PHP Manual genannt) herunterzuladen.
SelfPHP ist eine kleine Kurzreferenz der meisten PHP-Funktionen. DSP ist eine empfehlenswerte Referenz sowohl für Datenbanken im Allgemein, als auch für MySQL und PHP.
Das PHP Handbuch dokumentiert alle PHP-Funktionen. Das solltest du dir auf jeden Fall herunterladen.
Marwin
Kopiere doch bitte diesen Code in die Datei player.php
Code: Alles auswählen
<?php
$dbname = "radlinks";
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$verbindung = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);
$sql = "SELECT url FROM sender WHERE (id = ".$_POST[auswahl].")";
$result = mysql_query($sql);
echo mysql_error();
list($url) = mysql_fetch_row($result);
mysql_close($verbindung);
echo "URL: ".$url;
?>Ich empfehle dir SelfPHP, DSP und das PHP Handbuch (auch PHP Manual genannt) herunterzuladen.
SelfPHP ist eine kleine Kurzreferenz der meisten PHP-Funktionen. DSP ist eine empfehlenswerte Referenz sowohl für Datenbanken im Allgemein, als auch für MySQL und PHP.
Das PHP Handbuch dokumentiert alle PHP-Funktionen. Das solltest du dir auf jeden Fall herunterladen.
Marwin
Hi Marwin,
ich kanns Dir nachfühlen , dass du schon fast am verzweifeln bist.
Mir gehts da nicht anders. Bin Heute erst um 3 Uhr ins Bett und mußte um 4 schonwieder raus.
Aber es hat mich einfach nicht mehr losgelassen!
Nun den.
Habe den von Dir hier aufgeschriebenen Code in meine player.php eingefügt.
Was soll ich sagen? Am besten nichts! Ich drücke es mal so aus -]
Es klappt, jede URL aus meiner Test Tabelle wird korrekt ausgegeben!!!
Danke Dir tausendmal, das du dir selbst auf einem Samstag die Zeit genommen hast, wo ein normaler Mensch eigendlich mit einem Bier in der Hand und nem Kotelett aufm Teller im Garten sitzt.
Ich hoffe aber das ich Deine Nerven nicht zu sehr strapaziert habe und du in den nächsten 6 Monaten nichts mehr von mir hören willst !
Ich hätte da nämlich noch eine knifflige Frage oder auch zwei.
Übrigens habe ich mir das selfphp Tut. kurz bevor ich hier aufs Board bin gesogen!!!
So, jetzt werde ich mal schauen, ob die ausgegebenen URL´s in der player.php auch in ein Player Script eingefügt und gestartet werden können.
Wünsche Dir noch ein schönes Wochenende!
Gruß Rudi
ich kanns Dir nachfühlen , dass du schon fast am verzweifeln bist.
Mir gehts da nicht anders. Bin Heute erst um 3 Uhr ins Bett und mußte um 4 schonwieder raus.
Aber es hat mich einfach nicht mehr losgelassen!
Nun den.
Habe den von Dir hier aufgeschriebenen Code in meine player.php eingefügt.
Was soll ich sagen? Am besten nichts! Ich drücke es mal so aus -]
Es klappt, jede URL aus meiner Test Tabelle wird korrekt ausgegeben!!!
Danke Dir tausendmal, das du dir selbst auf einem Samstag die Zeit genommen hast, wo ein normaler Mensch eigendlich mit einem Bier in der Hand und nem Kotelett aufm Teller im Garten sitzt.
Ich hoffe aber das ich Deine Nerven nicht zu sehr strapaziert habe und du in den nächsten 6 Monaten nichts mehr von mir hören willst !
Ich hätte da nämlich noch eine knifflige Frage oder auch zwei.
Übrigens habe ich mir das selfphp Tut. kurz bevor ich hier aufs Board bin gesogen!!!
So, jetzt werde ich mal schauen, ob die ausgegebenen URL´s in der player.php auch in ein Player Script eingefügt und gestartet werden können.
Wünsche Dir noch ein schönes Wochenende!
Gruß Rudi