Problem mit for Schleife

xtramen01

Erfahrenes Mitglied
Hallo Leute,

habe ein Problem mit einer Schleife.
Vielleicht kann mir ja jemand kurz helfen.

Rufe ich die Seite mit der Schleife auf so tut sich gar nix und der Browser hängt sich auf.

Ich würde gerne folgendes Ergebniss mit der Schleife haben:

PHP:
  $tempname_1 = $_FILES['pBild_1']['tmp_name'];
           $name_1 = $_FILES['pBild_1']['name'];
           $type_1 = $_FILES['pBild_1']['type'];
           $size_1 = $_FILES['pBild_1']['size'];
           
           $tempname_2 = $_FILES['pBild_2']['tmp_name'];
           $name_2 = $_FILES['pBild_2']['name'];
           $type_2 = $_FILES['pBild_2']['type'];
           $size_2 = $_FILES['pBild_2']['size'];
           
           $tempname_3 = $_FILES['pBild_3']['tmp_name'];
           $name_3 = $_FILES['pBild_3']['name'];
           $type_3 = $_FILES['pBild_3']['type'];
           $size_3 = $_FILES['pBild_3']['size'];

Und probiert hab ich das folgendermaßen:

PHP:
 for ( $i=1; $i<4; $i++)
          {
           $tempname_.$i = $_FILES['pBild_.$i']['tmp_name'].
           $name_.$i = $_FILES['pBild_.$i']['name'].
           $type_.$i = $_FILES['pBild_.$i']['type'].
           $size_.$i = $_FILES['pBild_.$i']['size'];
          }

Vielen Dank im voraus.

Gruss
 
Die Punkte da raus machen. z.B.

PHP:
           $name_$i = $_FILES['pBild_$i']['name'];


Dann müsste das gehen. Außerdem hinten ";" und nicht ".".
Dann sollte der Code gehen.

btw. Hängt sich der Browser wirklich auf? Welchen nutzt du denn? Kann eigentlich gar nicht passieren.
 
Zuletzt bearbeitet:
Danke.
Aber wenn ich die Punkte weg mache dann bekomm ich folgende Fehlermeldung:

Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in C:\xampp\htdocs\for.php on line 4

Noch eine Idee wie man das realisieren kann sodass ich das gewünschte Ergebniss bekomme?
 
Hi

versuche es mal so.

PHP:
$tempname = array();
 $name = array();
 $type = array();
 $size = array();
 for ( $i=1; $i<4; $i++)
 {
   $tempname[$i] = $_FILES["pBild_$i"]["tmp_name"].
   $name[$i] = $_FILES["pBild_$i"]["name"].
   $type[$i] = $_FILES["pBild_$i"]["type"].
   $size[$i] = $_FILES["pBild_$i"]["size"];
 }

mfg ;)
 
Das klappt wunderbar.....ich danke euch vielmals ;-)) !!

Jetz hab ich noch ein Problem was damit zusammenhängt.
Nun weis ich nicht recht wie ich das mit der Datenbank mache.

Ich bekomme es irgendwie nich richtig hin. Vielleicht ist es ja nur eine Kleinigkeit die einer von euch sofort sieht.
Wäre echt eine riesen Hilfe.

So klappt es nicht:

PHP:
   function_dbQuery("UPDATE shop_products SET

                                          p_name = '" . $_POST['pName'] . "',
                                          p_beschreibung = '" . $_POST['pBeschreibung'] . "',
                                          
                                          ". 
                                           for ( $i=1; $i<4; $i++)
                                           {
                                          ."
                                           
                                          p_bild_$i = '" . $name_[$i] . "',
                                          
                                          ".
                                          } 
                                          ."
                                          
                                          p_artikelnummer = '" . $_POST['pArtikelnummer'] . "',

                                          WHERE

                                          pid = '" . $_GET['pID'] . "' "
                                          );

Da kommt die Meldung:


Parse error: syntax error, unexpected T_FOR in C:\xampp\htdocs\cms\admin\shop_products.php on line 250

So gehts aber is ja nicht mehr dynamisch dann:

PHP:
 function_dbQuery("UPDATE shop_products SET

                                          p_name = '" . $_POST['pName'] . "',
                                          p_beschreibung = '" . $_POST['pBeschreibung'] . "',
                                          p_artikelnummer = '" . $_POST['pArtikelnummer'] . "',
                                          p_bild_1 = '" . $name_[1] . "',
                                          p_bild_2 = '" . $name_[2] . "',
                                          p_bild_3 = '" . $name_[3] . "'

                                          WHERE

                                          pid = '" . $_GET['pID'] . "' "
                                          );

Viele Grüße
 
Zuletzt bearbeitet:
1. Du kannst keine PHP Kontrollstrukturen in "Strings" verwenden.
2. Deine 2te Variante ist schon richtig da muss auch nichts dynamisch sein, deine MySql Spalten sind doch auch nicht dynamisch ? Ich nehme an es sind 3 Spalten für Bilder.
3. Wenn es mal weniger als 3 Bilder sind musst du vorher prüfen ob es gültige Bilder sind bzw. gültig ist.

Falls du mehrere Einträge machen möchtest dann musst du die Schleife außen rum basteln.

Falls nichts dabei ist, bitte ich dich drum das Problem zu konkretisieren.

mfg :)
 
Zurück