Supportnet Computer
Planet of Tech

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


Antwort 2 von Ines

Ja, ich hole "add_anzahl" aus der DB und speichere sie in "$edit_anzahl".

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

Antwort 4 von Ines

Ok, hier ist der Teil:

<?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:

<?
$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:

      	  <?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

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


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?

$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

Antwort 12 von Ines

Danke, hab dort gefunden was ich suchte :-))).

Ines

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: