Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Daten aus MySql Tabelle in Formular einlesen
Frage
Hallo!
Also die Daten in ein einfaches Textfeld einlesen hab ich ja schon mal hinbekommen :-), indem ich an entsprechender Formularstelle diesen Code benutze:
[code]
<input name="add_titel" value="<?php echo $edit_titel?>" type="text" size="50" maxlength="100">
[/code]
Damit lese ich ein oder auch mehrere Wörter in ein Textfeld ein, die ich vorher in "$edit_titel" abgespeichert habe (durch Datenbankabfrage ermittelt :-)).
So, mein Problem ist nun, dass ich auch Daten in ein Auswahlmenü lesen möchte (es ist nicht mehrfach auswählbar, also kein multiple).
Ich hab es zwar auch hinbekommen, aber waaaahnsinnig "codeintensiv", aber mir fällt nix ein, wie es einfacher geht. Also hier mal meine Variante:
[code]
<select name="add_anzahl">
<?php
if ($edit_anzahl=="1")
{
echo "<option value=\"1\" selected>1</option>";
echo "<option value=\"2\">2</option>";
echo "<option value=\"3\">3</option>";
}
if ($edit_anzahl=="2")
{
echo "<option value=\"1\">1</option>";
echo "<option value=\"2\" selected>2</option>";
echo "<option value=\"3\">3</option>";
}
else
{
echo "<option value=\"1\">1</option>";
echo "<option value=\"2\">2</option>";
echo "<option value=\"3\" selected>3</option>";
}
?>
</select>
[/code]
Hier konnte man zwischen den Zahlen 1, 2 und 3 wählen und jenachdem, was in der Datenbank gespeichert ist, soll er selektieren, also das anzeigen, was gespeichert ist. Das ist aber wie Du siehst eine ewig lange Abfrage, das ich in Zukunft besser machen will, aber wie mache ich es einfacher?
Ines
Antwort 1 von Nessus
Hi,
holst Du die Var "add_anzahl" aus der DB?
Nessus
holst Du die Var "add_anzahl" aus der DB?
Nessus
Antwort 2 von Ines
Ja, ich hole "add_anzahl" aus der DB und speichere sie in "$edit_anzahl".
Ines
Ines
Antwort 3 von Nessus
Poste mal bitte diesen Teil....
Da Du die Anzahl alls Array aus der DB holst, ist es sinnvoll dies gleich dort zu unternehmen
Da Du die Anzahl alls Array aus der DB holst, ist es sinnvoll dies gleich dort zu unternehmen
Antwort 4 von Ines
Ok, hier ist der Teil:
So, ich hoffe, das was das was Du brauchst?
Ines
<?php
include ("dbconnect.php");
while($row=mysql_fetch_array($res))
{
if ($row["ID"]==$edit_ID)
{
$edit_titel=$row["filmtitel"]; //Textfeld
$edit_anzahl=$row["anzahl_cd"];//Auswahlmenü
}
}
?>
So, ich hoffe, das was das was Du brauchst?
Ines
Antwort 5 von Nessus
Hi,
anbei ein Codebeispiel, dort wird die Vorgehendsweise deutlich:
Das Snipplet macht genau das, was Du willst, Du mußt es lediglich anpassen.
HTH
Nessus
anbei ein Codebeispiel, dort wird die Vorgehendsweise deutlich:
<?
$db = date("Y");
$optionen = array(1 =>'2002','2003','2004','2005','2006','2007','2008','2009','2010');
echo"<select size=\"1\" name=\"Jahr\">";
for ($lo=1;$lo<9;$lo++)
{
if ($db == $optionen[$lo])
{
echo "<option selected value=\"$lo\">$optionen[$lo]</option>\n";
}
else
{
echo "<option value=\"$lo\">$optionen[$lo]</option>\n";
}
}
?>
</select>
Das Snipplet macht genau das, was Du willst, Du mußt es lediglich anpassen.
HTH
Nessus
Antwort 6 von Ines
Ich hab den Code meinem angepasst, aber irgendwie ist da noch der Wurm drin. Er durchläuft immer nur das erste echo wobei dann 1 immer gleich 1, 2=2 und 3=3 ist, so dass ich immer 3 als selected angezeigt bekomme.
Hier mal mein Code:
Nach der Stelle "Anzahl CD`s" lasse ich meine Var "edit_anzahl" nur mal so ausgeben, da zeigt er mir immer den richtigen Wert an. Es liegt also nicht an der Variable, sondern an der if-Abfrage. Hab schon viel probiert, aber bin bis jetzt gescheitet.
Kann wer helfen???
Ines
Hier mal mein Code:
<?php
$optionen=array(1=>'1','2','3');
echo "<select name=\"add_anzahl\">";
for ($i=1;$i<4;$i++)
{
if ($edit_anzahl=$optionen[$i])
{
echo "<option selected value=\"$i\">$optionen[$i]</option>\n";
}
else
{
echo "<option value=\"$i\">$optionen[$i]</option>\n";
}
}
?>
</select>
Nach der Stelle "Anzahl CD`s" lasse ich meine Var "edit_anzahl" nur mal so ausgeben, da zeigt er mir immer den richtigen Wert an. Es liegt also nicht an der Variable, sondern an der if-Abfrage. Hab schon viel probiert, aber bin bis jetzt gescheitet.
Kann wer helfen???
Ines
Antwort 7 von Nessus
<?php
$sel = "1";
$optionen = array(1 =>'1','2','3');
echo"<select size=\"1\" name=\"add_anzahl\">";
for ($i=1;$i<4;$i++)
{
if ($sel == $optionen[$i])
{
echo "<option selected value=\"$i\">$optionen[$i]</option>\n";
}
else
{
echo "<option value=\"$i\">$optionen[$i]</option>\n";
}
}
?>
</select>
$sel ist die Variable, die dann die optin selected markiert.
Jetzt aber ;-)
Nessus
Antwort 8 von Ines
Oh man, hab nen Brett vor dem Kopf gehabt :-)))). Es funktioniert, aber nicht mit $sel, sondern ich habe an der Stelle
kein zweites Gleichheitszeichen gehabt. Ich war am verzweifeln, Dank Dir ist es gelöst, vielen Dank Nessus!!!!!!!!!!!!!
Ich befürchte es war nicht mein letztes thread :-((((. Hab "kleine" Probleme beim UPDATE Befehl von MySQL. Aber dazulieber nen neuer Beitrag :-).
Danke noch mal!!!!!!
Ines
if ($edit_anzahl=$optionen[$i])
kein zweites Gleichheitszeichen gehabt. Ich war am verzweifeln, Dank Dir ist es gelöst, vielen Dank Nessus!!!!!!!!!!!!!
Ich befürchte es war nicht mein letztes thread :-((((. Hab "kleine" Probleme beim UPDATE Befehl von MySQL. Aber dazulieber nen neuer Beitrag :-).
Danke noch mal!!!!!!
Ines
Antwort 9 von Nessus
Ist OK, diese Woche ist Sonderangebotswoche ;-)
Nessus
Nessus
Antwort 10 von Ines
Echt, da hab ich ja echt Glück ;-).
Mir ist beim Anpassen meiner anderen Auswahlfelder schon wieder ne Frage dazu aufgekommen. Und zwar hab ich ja jetzt bei diesen obigen Beispiel ein Array, das Zahlen in meine Tabelle schreibt. Was ist, wenn ich aber Wörter speichern will, muss ich das dann so machen?
Mein UPDATE Befehl funtioniert wie gesagt noch nicht, deshalb kann ich es noch nicht test, will nur sicher gehen, dass ich nicht alles wieder ummodeln muss.
Ines
Mir ist beim Anpassen meiner anderen Auswahlfelder schon wieder ne Frage dazu aufgekommen. Und zwar hab ich ja jetzt bei diesen obigen Beispiel ein Array, das Zahlen in meine Tabelle schreibt. Was ist, wenn ich aber Wörter speichern will, muss ich das dann so machen?
$optionen = array("WortInMySQL1"=>"WortImAuswahlmenue1","WortInMySQL2"=>"WortImAuswahlmenue2");
Mein UPDATE Befehl funtioniert wie gesagt noch nicht, deshalb kann ich es noch nicht test, will nur sicher gehen, dass ich nicht alles wieder ummodeln muss.
Ines
Antwort 11 von Nessus
Schaue Dir bitte das an:
http://de2.php.net/manual/de/function.array.php
Diese Seite unbedingt bookmarken.
Nessus
http://de2.php.net/manual/de/function.array.php
Diese Seite unbedingt bookmarken.
Nessus
Antwort 12 von Ines
Danke, hab dort gefunden was ich suchte :-))).
Ines
Ines