For- und while-schleife

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • For- und while-schleife

    Hallo!

    Ich habe folgendes Problem:

    Hierzu erstmal der Quellcode:
    for($i = 1; $i <= $zahlak; $i++)
    {
    $t = "MR".$i;
    $$t = $_POST["$t"];
    $o = "ER".$i;
    $p = "ER".$i;
    if ($_POST["$o"] >= 1)
    { $$p = $_POST["$o"]; }
    else
    { $$p = 0; }
    mysql_connect("localhost","root","");
    $RNEU1 = mysql_db_query('Wawi','SELECT $SEN, $SEB, Artikelnummer, Einheit, Bezeichnung FROM artikel WHERE ean = $o');
    while ($RNEU1A = mysql_fetch_array($RNEU1))
    {
    $R1NE = $RNEU1A[$SEN];
    $R1BP = $RNEU1A[$SEB];
    $R1AN = $RNEU1A[Artikelnummer];
    $R1EH = $RNEU1A[Einheit];
    $R1BE = $RNEU1A[Bezeichnung];
    }
    }

    Wieso funktioniert dieser Code so nicht?
    Wenn die while-Schleife nicht in der for-Schleife steht, geht es so.
    Woran liegt das?
    Bzw. wie muss man es schreiben, dass es funktioniert?

    Gruß
    Florian

  • #2
    Bitte PHP-Tags benutzen und Code einrücken - so ists sehr anstrengend zu lesen. Davon abgesehen: Was funktioniert nicht? Was bezweckst du und was passiert stattdessen?
    Nieder mit der Camel Case-Konvention

    Kommentar


    • #3
      Hä ... es liegt definitiv an deiner Formulierung, sowohl Code als auch Beschreibung des Problems. Versuch nochmals.

      Kommentar


      • #4
        also irgendwie sieht das ziemlich krude aus. was soll denn so was?
        PHP-Code:
         $$t $_POST["$t"];
        ...
        $
        $t $_POST["$t"]; 
        btw: das sollte man besser so schreiben
        PHP-Code:
         ${$t} = $_POST["$t"]; 
        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Der Code selbst funktioniert, kein Thema, aber....

          1) vielleicht wird die for-Schleife nicht durchlaufen, weil die Bedingung unwahr ist
          2) der Code ist fürchterlich unsauber programmiert, weil...

          a) du übermäßigen Gebrauch von variablen Variablen gemacht hast (Arrays sind besser)
          b) solche Variablen wenn dann besser so geschrieben werden: ${$x}
          c) du keine Anführungszeichen bei den Array-Indizes weiter unten gemacht hast (dafür weiter oben, wo sie nicht notwendig sind).

          Kommentar


          • #6
            Hallo!

            ERSTMAL Danke für eure Antworten!

            Also das, mit $$t mache ich so, da es bis zu einem speziellen Wert durchlaufen soll. Das funktioniert auch alles. aber sorry, ich habe wirklich sehr schlecht beschrieben, was das Problem ist.
            Das Problem ist, dass die Anbindung an die MySQL-Datenbank nicht funktioniert.
            Es kommt immer folgende Fehlermeldung:

            Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Rechnungen\Dawawi\reneubea.php on line 25

            Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Rechnungen\Dawawi\reneubea.php on line 25


            Also das mit $$t funktioniert ganz gut.
            Und sorry, dass ich so unsauber scripte. Aber bin noch am Anfang und steige mit den Anführungszeichen und so noch nicht so ganz durch.
            Also nochmal kurz:
            Der Fehler liegt in dem Teil mi MySQL.
            Und zwar funktioniert es, solange ich die while-schleif außerhab der for-schleife schreibe. Sobald sie aber innerhalb steht, gehts nicht meh.
            Woran liegt das?

            Gruß
            Florian

            Kommentar


            • #7
              Das können wir dir nicht sagen, da wir keinerlei Variablenwerte kennen. Gib den Query doch bitte mal aus (aus diesem Grund speichert man einen Query eigentlich auch immer erst in einer Variablen, bevor man ihn sendet - das Ausgeben geht dann schneller).

              Außerdem: wer hat dir PHP beigebracht? Ich würde niemals einem Anfänger variable Variablen an die Hand geben!

              Kommentar


              • #8
                Hallo!

                Was meinst du mit Query?
                Also es funktioniert mit den Variablen nicht, egal was sie für einen Wert hat.

                Also PHP hab ich mir größtenteils alles selber beigebracht und das mit variable Variablen hat mir heute eienr über icq gesagt, dass es so geht.

                Also wenn du mir genau sagst, was du noch wissen musst, dann sag ichs dir.

                Gruß
                FLorian

                Kommentar


                • #9
                  Den Query muss ich wissen.
                  PHP-Code:
                  echo $sql 'SELECT $SEN, $SEB, Artikelnummer, Einheit, Bezeichnung FROM artikel WHERE ean = $o';
                  $RNEU1 mysql_db_query('Wawi'$sql); 
                  Und des weiteren: mysql_db_query() ist deprecated. Nimm lieber mysql_select_db() in Verbindung mit mysql_query().

                  Kommentar


                  • #10
                    und das mit variable Variablen hat mir heute eienr über icq gesagt
                    das merkt man . hast du mal unseren tipp mit dem ${$...} beherzigt? testausgaben gemacht? mal folgendes probiert?
                    PHP-Code:
                    $query 'SELECT $SEN, $SEB, Artikelnummer, Einheit, Bezeichnung FROM artikel WHERE ean = $o';
                    echo 
                    $query;
                    $RNEU1 mysql_db_query('Wawi',$query) or die (mysql_error()); 
                    btw: lies dir mal das und das hier durch, dann wirst du auch den fehler finden. besonders was variablen in zeichenketten angeht!

                    gruß
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Hallo!

                      Nein ich habe es mit {} noch nicht probiert.
                      Wo ist denn da der unterschied?
                      Für mich hört es sich so an, als ob du die Lösung des Problems kennst. Kannst du mir sie nicht sagen, bevor ich lange suche?

                      Gruß
                      Florian

                      Kommentar


                      • #12
                        Oje, auf was man bei dem Skript alles achten muss. Das ist ja auch noch falsch.
                        Vielleicht sollte ich mir C&P in Foren doch abgewöhnen.

                        Edit:
                        Variable Variablen, ja...
                        Was ist mit dem folgenden Skript? Wie ist das zu interpretieren? Eindeutig zweideutig würde ich sagen:
                        PHP-Code:
                        <?php
                        $a 
                        = array('a''b''c');
                        $
                        $a[0] = 5;
                        ?>
                        Zuletzt geändert von Manko10; 18.03.2008, 22:24.

                        Kommentar


                        • #13
                          Hallo!

                          Sorry, das ich so unsauber scripte. Aber ich bin erst 15 und woher sollte ich es auch können.
                          Daher bitte ich euch, redet deutsch mit mir und sgat mir die Lösung wenn ihr sie kennt.

                          Gruß
                          Florian

                          Kommentar


                          • #14
                            Oje, auf was man bei dem Skript alles achten muss. Das ist ja auch noch falsch.
                            Vielleicht sollte ich mir C&P in Foren doch abgewöhnen.

                            Edit:
                            Variable Variablen, ja...
                            Was ist mit dem folgenden Skript? Wie ist das zu interpretieren? Eindeutig zweideutig würde ich sagen:
                            PHP-Code:
                            <?php
                            $a 
                            = array(123);
                            $
                            $a[0] = 5;
                            ?>
                            Daraus wird nichts, denn ein Variablenname muss mit Buchstaben anfangen, wenn ich mich nicht irre
                            Zuletzt geändert von asp2php; 18.03.2008, 22:29.

                            Kommentar


                            • #15
                              Das ist der query:

                              SELECT $SEN, $SEB, Artikelnummer, Einheit, Bezeichnung FROM artikel WHERE ean = $oSELECT $SEN, $SEB, Artikelnummer, Einheit, Bezeichnung FROM artikel WHERE ean = $o

                              Kommentar

                              Lädt...
                              X