WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP Liste erweitern (http://www.wcm.at/forum/showthread.php?t=212539)

neworder666 22.03.2007 19:21

PHP Liste erweitern
 
hallo!
ich habe ein problem eine liste zu erweitern.
ich habe eine bestehende liste,der ich über ein textfeld weitere einträge hinzufügen möchte.
im prinzip funktioniert das ganze schon,hat aber einen schönheitsfehler,den ich nicht
beheben
kann und deswegen dieses posting.
es wird die liste nämlich nicht erweitert,sondern der eintrag überschrieben.
wie kann ich es anstellen,daß weitere listenelemente hinzugefügt werden und nicht nur einer,
der dann immer überschrieben wird?
hier mein quelltext:
PHP-Code:

</head>
<?php
$c 
'<option value="Brot">Brot</option><option value="Milch">Milch
</option><option value="Butter">Butter</option>'
;
if (isset (
$_POST['abs']))
    {
        
$a $c;
        
$a.='<option value="'.$_POST['eing'].'">'.$_POST['eing'].'</option>'
        
//$a = $a . $b;
        
$c $a;    
?>
<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  <select name="ausw">
    <?php echo $c ?>
  </select>
  </label>
  

Hinzuf&uuml;gen:</p>
  


    <label>
    <input name="eing" type="text" id="eing" />
    </label>
  neue Kategorie

  <label>
  <input type="submit" name="abs" value="Best&auml;tigen" />
  </label>
</p>
<?php
    
?>
</form>
</body>

ich hoffe,daß mir jemand weiterhelfen kann.
vielen dank,alex

pong 22.03.2007 19:41

auf diese Art und Weise gar nicht

Speicher die Werte über ein Session, und bau dort aus dem Array die Liste auf

pong

neworder666 23.03.2007 17:22

hy! vielen dank,aber das hat sich schon erledigt.
aber eine andere frage: ich lasse daten in eine mysql datenbank speichern und diese wieder auslesen.
nachdem aber über ein script immer wieder daten hinzukommen, will ich diese in einem backend sortieren lassen.
mache ich die sortierung händisch über phpmyadmin,dann funktioniert das auslesen wunderbar,so wie ich es haben will.
nun möchte ich das aber über ein script realisieren.
ich habe mir das also zusammengebastelt,aber er ändert immer nur das letzte feld und es werden werte
bei den variablen ausgegeben,wo ich nicht ganz nachvollziehen kann,wo die herkommen.
ich kopier mal mein skript rein,vielleicht hat ja jemand eine idee wie ich weiterkomme,oder ob es eine andere lösung gibt und ich mich total verrant habe.
PHP-Code:

<?php
include ("incl.inc.php");
    echo 
'<form acttion="" method="post">';
   
$res mysql_query("select * from getraenke where kategorie = 'alkfrei' ORDER BY Sortierung");
   
$num mysql_num_rows($res);

    
   echo 
"<h1>Alkoholfreie Getränke</h1>";
   echo 
"
"
;
   echo 
"<table border = '0'>";
   
//$a = 1; 
   
while ($dsatz mysql_fetch_assoc($res))
   {
           
$a $_POST['probe'];
         echo 
"<tr>";
        echo 
"<td width = '250'>"  $dsatz["id"] . "</td>";
           echo 
'<input type="hidden" name="verst" value="'.$dsatz["id"].'" />';        
    
$bb $dsatz["id"];
      echo 
"<td width = '250'>"  $dsatz["getraenk"] . "</td>";
      if (
$dsatz["preis"] != "")
      {
      echo 
"<td> €  " $dsatz["preis"] . "</td>"
      }
      else
      {
      echo 
"<td>" $dsatz["preis"] . "</td>"
      } 
      if (
$dsatz["preis"] != "")
      { 
      
       echo 
'<td><input name="probe" type="text" size="3" value="'.$dsatz["Sortierung"].'" /></td>';
      } 
      echo 
'<td>'.$probe.'</td>';
      
//echo '<td>'.$a .'</td>';
       
echo "<td width = '250'>"  $dsatz["Sortierung"] . "</td>";
      echo 
"</tr>";
      
//$a = $a +1;
   
}
   echo 
'<tr>';
   echo 
'<td><input type="submit" name="abs"></td>';
   echo 
"</table>";
   if (isset (
$abs))
   {
       
$sqlab "UPDATE getraenke SET Sortierung = $probe where id = 2";
    echo 
$sqlab;
    
    
mysql_query($sqlab);
   }
   echo 
'</form>';
?>

vielen dank,alex

pong 23.03.2007 18:02

Zitat:

wo ich nicht ganz nachvollziehen kann,wo die herkommen.
Wunder dich das, wennst den neuen Wert erst nach Aufbau deines Dropdown Feldes speicherst?

btw

Code:

select * from
zum Speibn

pong

Potassium 23.03.2007 21:55

Zitat:

Original geschrieben von pong
Code:

select * from
zum Speibn

pong

so schlimm auch wieder ned. wenn das projekt ned riesig is oder er alle werte braucht, was solls? ;)

pong 23.03.2007 22:37

Zitat:

Original geschrieben von Potassium
so schlimm auch wieder ned. wenn das projekt ned riesig is oder er alle werte braucht, was solls? ;)
Gewöhnt man sich nicht von anfang an die Grundregeln an, so wirds später einfach nur mühsam, sich an sowas anzupassen

pong

Philipp 24.03.2007 08:07

In letzter Zeit wird der Ton hier im Forum auch immer unfreundlicher :(

Die "select *" Abfrage ist ja noch das kleinste Problem das dieses Script hat.

Ersetzte:
PHP-Code:

echo '<form acttion="" method="post">'

Durch:
PHP-Code:

echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">"

Ersetze:
PHP-Code:

echo '<td>'.$probe.'</td>'

Durch:
PHP-Code:

echo "<td>".htmlspecialchars($_POST['probe'])."</td>"

Ersetze:
PHP-Code:

if (isset ($abs)) 

Durch:
PHP-Code:

if (isset($_POST['abs'])) 

Ersetze:
PHP-Code:

$sqlab "UPDATE getraenke SET Sortierung = $probe where id = 2"

Durch:
PHP-Code:

$probe = (get_magic_quotes_gpc()) ? $_POST['probe'] : addslashes($_POST['probe']) ;
$sqlab "UPDATE getraenke SET Sortierung = ".$probe." WHERE id = '2'"

Zitat:

ich habe mir das also zusammengebastelt,aber er ändert immer nur das letzte feld
Hat das letzte Feld zufälligerweise die ID 2 (WHERE id = '2') ;)

Ich würde mir außerdem Zend Studio ansehen, da der eingebaute Debugger viele Probleme automatisch erkennt und sogar erklärt wie man es richtig machen muss. Eine 30 Tage Demo gibt es als kostenlosen Download.

Potassium 24.03.2007 14:07

Zitat:

Original geschrieben von pong
Gewöhnt man sich nicht von anfang an die Grundregeln an, so wirds später einfach nur mühsam, sich an sowas anzupassen

pong

Gutes Argument. Was aber genau stört denn, wenn man das so abfrägt?

bully 24.03.2007 14:25

Wahrscheinlich meint er, das SELECT * FROM sollte vermieden werden, man sollte von Anfang an nur die Spalten selektieren, deren Informationen benötigt werden. Die Ausgabe ist halt übersichtlicher und die Rechnerbelastung für die Abfrage wird in Grenzen gehalten.

Das kann man IMHO aber wirklich auch anders ausdrücken. Wie Phillip schon sagte, der Ton macht die Musik.

lg
bully

neworder666 25.03.2007 13:22

hallöchen!
vielen dank für die hilfe. ich werd das gleich mal ausprobieren.
das mit der id = 2 war nur ein versuch von mir und ich habs vergessen umzuändern, weil ständig nur eine andere id übernommen worden ist.
also wie gesagt,vielen dank,ich hoffe,daß es jetzt funktionieren wird.
lg,alex


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag