Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] probleme for bzw while

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] probleme for bzw while

    Hallo,
    ich bin am verzweifeln,
    ich hab eine Seite,die mir an eine andere eine mysql id übergibt.
    Diese möchte ich gerne als Index in einer For oder auch while schleife verwenden,das klappt leider nicht.
    So siehts aus:

    for ($i = '$del_id'; $i < $anz_flips; $i++) {
    ich übergebe $del_idund $anz_flips das kommt auch richtig an.
    Jedoch läuft die Schleife unendlich,
    wenn ich jedoch vorher $del_id=30; notiere funktioniert meine Schleife.
    Was muss ich machen,damit dies funktioniert.
    Ich han das auch mit einer While probiert da tritt das gleiche Problem auf.
    Vielen Dank für Eure Antworten.


  • #2
    Bist du dir _sicher_ dass es richtig ankommt (von wo eigentlich?)? was sagt ein var_dump($del_id) bzw. ein var_dump($anz_flips) direkt vor der Schleife?

    Und was sollen die Anführungszeichen um $del_id?
    Create your own quiz show.

    Kommentar


    • #3
      Genau, laß erstmal die '' weg, wahrscheinlich ist das schon die Lösung. Denn ++ kann auch Strings inkrementieren.
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Genau, '$del_id'++ ist '$del_ie'

        Kommentar


        • #5
          ich würde gleich $_POST[del_id] bzw. $_GET[del_id] verwenden. Das gibt dann auch im Web keine Probleme.
          http://www.dhsmedia.de
          http://www.deutsch-im-blick.de

          Kommentar


          • #6
            Dann aber so etwas wie
            PHP-Code:
            $del_id = (int)$_POST['del_id'

            Kommentar


            • #7
              Vielen Dank für eure tipps,
              ich hab mir direkt vor die Schleife zum debuggen ein echo $del_id und echo $anz_flips eingebaut um zu sehen,ob die formulardaten aus dem aufrufenden script richtig ankommen. Ich hab jetzt mal die '' weggelassen, hab aber leider immer noch das gleichre Problem.

              So sieht meine komplette Scheife aus:


              echo "anz_flips".$anz_flips."<br>";
              echo "del_id".$del_id."<br>";
              for ($i = $del_id; $i < $anz_flips; $i++) {

              $j++;
              $k++;
              echo "inwhile <br>";
              echo "del_id ".$del_id."<br>";
              echo "j ".$j."<br>";
              }
              Im Browser bekomm ich dann folgende Ausgabe, leider endlos

              anz_flips53
              del_id'35'
              inwhile
              del_id '35'
              j 36
              inwhile
              del_id '35'
              j 37
              inwhile
              del_id '35'
              j 38

              Vielen Dank und schönes Wochenende

              Kommentar


              • #8
                Die Schleife müsste 17x durchlaufen werden (es bringt recht wenig, wenn du $j ausgibst, da es für die Schleife nicht relevant ist.
                Das $j++ und das $i++ kannst du übrigens auch in den Schleifenkopf stecken:
                PHP-Code:
                for ($i $del_id$i $anz_flips$i++, $j++, $k++) {
                    echo 
                '$del_id: '    $del_id    '<br>';
                    echo 
                '$anz_flips: ' $anz_flips '<br>';
                    echo 
                '$i: '         $i         '<br><br>';

                Bist du sicher, dass das der komplette Inhalt der for-Schleife ist und welche Ausgabe bringt meine Version der Schleife?
                Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                Kommentar


                • #9
                  Hallo,vielen Dank für die neue Schleife,
                  jedoch besteht der Fehler weiter,ich hab nun rausgefunden,dass die Übergabe mines Formulars ein String übergibt.
                  Das sieht so aus:
                  echo '<input type=hidden name="del_id" value=.$id.">';
                  kann ich hier veranlassen,dass del_id als integer übergeben wird?
                  Vielen ADnk

                  Kommentar


                  • #10
                    1. Benutze bitte BB Tags

                    2.
                    echo "anz_flips".$anz_flips."<br>";
                    echo "del_id".$del_id."<br>";
                    ...
                    anz_flips53
                    del_id'35'
                    Wenn das wirklich so ausgegeben wird hast Du schon die Antwort: del_id'35' In der Variable steht "'35'", nicht "35". Kombiniert mit den Ausführungen zum String Inkrement...

                    3.
                    echo '<input type=hidden name="del_id" value=.$id.">';
                    Was ist das denn fürn Kauderwelsch?
                    3.1. Benutze "" für html Attribute.
                    3.2. .$id. funktioniert nur, wenn Du den Stringbereich vorher verlässt.
                    Insgesamt also:
                    PHP-Code:
                     echo '<input type="hidden" name="del_id" value="' $id '">'
                    Hättest Du Punkt 1 berücksichtigt, hättest Du es schon an den Farben erkennen können. Zum Vergleich Dein Beispiel:
                    PHP-Code:
                    echo '<input type=hidden name="del_id" value=.$id.">'
                    Die Antwort auf Deine Frage ist Jain: Formulardaten werden generell als Stringtyp übergeben, allerdings ist das ob der schwachen Typbindung der Sprache und der autom. Kovertierung durch PHP nur in einem Promille von Fällen ein Problem.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Versuch es trotzdem mal mit expliziter Umwandlung
                      PHP-Code:
                      <?php
                      echo "anz_flips $anz_flips <br />\n";
                      echo 
                      "del_id $del_id <br />\n";
                      $anz_flips intval($anz_flips);
                      $del_id intval($anz_flips);
                      echo 
                      "(int)anz_flips $anz_flips <br />\n";
                      echo 
                      "(int)del_id $del_id <br />\n";

                      for (
                      $i $del_id$i $anz_flips$i++) {
                        echo 
                      "i $i <br />";
                      }
                      Was wird so ausgegeben?

                      Kommentar


                      • #12
                        Es sollte trotzdem die Ursache behoben werden ..
                        "Mein Name ist Lohse, ich kaufe hier ein."

                        Kommentar


                        • #13
                          Wird sie ja, immer mit der Ruhe.

                          Kommentar


                          • #14
                            - -
                            "Mein Name ist Lohse, ich kaufe hier ein."

                            Kommentar

                            Lädt...
                            X