phpbar.de logo

Mailinglisten-Archive

AW: [php] array in while schleife

AW: [php] array in while schleife

Sandor Wonschik php_(at)_phpcenter.de
Thu, 29 Aug 2002 16:57:02 +0200


Hi Sorin,

kann es sein, dass du immer den gleichen Namen für die INPUT-Felder in deinem
Formular verwendet hast? Dann hast Du in der Tat alle Werte davor verloren.
Sie werden einfach überschrieben von den folgenden Feldern mit dem gleichen
Namen. Was übrigbleibt ist die letzte Zuweisung, also die letzte Zeile in
deinem Formular. Der Tipp von Alex war dann schon ganz richtig, du musst statt
Feldname "desc" dann "desc[]", statt "hours" "hours[]" nehmen und so weiter.
Dann solltest du alle Werte korrekt in einem Array bekommen.

Hoffe das hilft dir,
Sandor


-----Ursprüngliche Nachricht-----
Von: Sorin Marti [mailto:mas_(at)_semafor.ch]
Gesendet: Donnerstag, 29. August 2002 16:41
An: php_(at)_phpcenter.de
Betreff: [php] array in while schleife


Hi zusammen

sorry, aber ich komm nicht weiter, hat denn niemand ne Ahnung?

> Hi Sorin,
>
> nein. Nimm als Feldname z.B. feld[]. Bei aktiviertem register_globals
> erzeugt PHP automatisch ein numerisches Array namens $feld. Das kannst
> Du dann weiter auswerten. Sollte register_globals ausgeschaltet sein,
> musst du dir das Array erst aus der $_POST- bzw. $_GET- Variablen holen.
>
> mfg
> alex
>

Stark abgespeckt sieht mein Code so aus: die Variabeln, die ins Array
geschrieben werden stammen aus den Eingabefeldern des in der
while-Schleife ausgegebenen Formulars. (Ich lese einem user zugeordnete
projekte aus einer mysql-tab aus und liste diese auf mit eingabefeldern
dahinter um arbeitszeiten einzutragen)

$id = 0;

while($row = mysql_fetch_array($pid_array))
   {
    $array = array($id, array($p_id, $sp_id, $_GET["$desc"],
$_GET["$hours"], $_GET["$mins"], $date));
    $id++;
   }

ich gebe also das array aus und erhalte folgendes...

print_r($array);

Array (
[0] => 2   //das ist die $id
[1] => Array (
          [0] => 1 //projekt_id
          [1] => 3 //subprojekt_id
          [2] => Descr 3  //Arbeitszeitbeschreibung
          [3] => 1 //Stunden
          [4] => 15 //Minuten
          [5] => 2002-08-29 //Datum
) )

Das ist aber alles. Die Ausgabe ist die 3. (und letzte) Linie im
Formular, die beiden anderen Linien sind nicht da?

Werden sie überschrieben oder gar nicht erst eingetragen? stimmt mit
meinem Script was nicht? mache ich einen Denkfehler?

Bitte helft mir!

mfg

Sorin
--
** http://www.php-center.de **
Die PHP-Liste: mailto: php_(at)_phpcenter.de
http://lists.phpcenter.de/mailman/listinfo/php


php::bar PHP Wiki   -   Listenarchive