Ankündigung

Einklappen
Keine Ankündigung bisher.

$i1++ funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • $i1++ funktioniert nicht

    Hi community,
    ich hab das Problem, dass meine Variable $i1 nicht um 1 erhöht wird, wenn ich
    PHP-Code:
    $i++; 
    mache...

    Vollständiger Code:
    PHP-Code:
                <?php
                
    // �ffnet ein Unterverzeichnis mit dem Namen "text"
                
    $verzeichnis openDir("./news/text");
                
    // Verzeichnis lesen
                
    while ($file readDir($verzeichnis)) {
                    
    // H�here Verzeichnisse nicht anzeigen!
                    
    if ($file != "." && $file != "..") {
                        
    // In Array reinstecken.
                        
    $texte = array($file);


                        
    $i 0;
                        while (
    $i count($texte)) {
                            
    $i1 1;
                            echo 
    '<div id="d' $i1 '">';
                            
    $i1++;
                            echo 
    '<p>';
                            echo 
    '<ul><a href="./news/news.php?id=' $texte[$i] . '"><li>' $texte[$i] . '</li></a></ul>';
                            echo 
    '<p id="homut">';
                            @include(
    './news/einft/' $texte[$i] . '.text.einft');
                            echo 
    '</p>';
                            echo 
    '</p>';
                            echo 
    '</div>';
                            
    $i++;
                        }
                    }
                }
                
    ?>
    Als Ausgabe krieg ich:
    Code:
    <div id="d1"><p><ul><a href="./news/news.php?id=Neuer%20Webmaster"><li>Neuer Webmaster</li></a></ul><p id="homut">Unser neuer Webmaster.. wer es wohl ist?</p></p></div><div id="d1"><p><ul><a href="./news/news.php?id=BlaBla"><li>BlaBla</li></a></ul><p id="homut">BlaBla wurde neu programmiert und aufgebaut ... u.v.m.</p></p></div>


  • #2
    Also
    1. $i1 wird auch nicht erhöht wenn du $i++ machst, schließlich erhöhst du ja auch ne ganz andere Variable!
    2. du setzt in jedem Schleifendurchgang $i1 auf 1 und erhöhst es dann um 1. Aber wenn es dann immer am Anfang auf 1 gesetzt wird wie soll es dann jemals größer werden?

    Ansonsten was genau möchtest du nun, ich bin mir nicht sicher was du genau meinst, ob jetzt $i oder $i1 ...

    Kommentar


    • #3
      Zitat von MasterN Beitrag anzeigen
      Als Ausgabe krieg ich: [...]
      Gewöhne dir bitte an, halbwegs brauchbare Problembeschreibungen zu verfassen. Einfach ein paar Ausgabedaten hier hinzuklatschen, ist zu wenig. Woher sollen wir wissen, was dein Script machen soll?

      „Ich erwarte dieses Ergebnis: [...], bekomme stattdessen aber: [...]“ - das sollte das mindeste sein, was du klar und deutlich beschreibst, wenn du hier Hilfe bekommen willst.


      Und wenn dein Problem ist, dass der Wert nicht pro Schleifendurchlauf erhöht wird - dann liegt das vielleicht daran, dass du den Wert jedes Mal am Beginn des Schleifencodes wieder auf 1 zurücksetzt ...?

      Kommentar


      • #4
        Also: Srry.

        mein Code-Code:
        PHP-Code:
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
            <head>
                <title>Startseite &raquo; schule.domspatzen.de</title>

                <?php
                
        include './inc/head.inc';
                
        ?>
            </head>

            <body>
                <a href="<?php echo $p_echo '/'?>">
                    <h1 id="banner_ngif">schule.domspatzen.de</h1>
                </a>
                <?php
                
        include './inc/menu.inc';
                
        ?>
                <div id="layout">
                    <h2>Startseite</h2>
                    <?php
                    
        // �ffnet ein Unterverzeichnis mit dem Namen "text"
                    
        $verzeichnis openDir("./news/text");
                    
        // Verzeichnis lesen
                    
        while ($file readDir($verzeichnis)) {
                        
        // H�here Verzeichnisse nicht anzeigen!
                        
        if ($file != "." && $file != "..") {
                            
        // In Array reinstecken.
                            
        $texte = array($file);


                            
        $i 0;
                            
        $i1 1;
                            while (
        $i count($texte))
                                echo 
        '<div id="d' $i1 '">';
                                echo 
        '<p>';
                                echo 
        '<ul><a href="./news/news.php?id=' $texte[$i] . '"><li>' $texte[$i] . '</li></a></ul>';
                                echo 
        '<p id="homut">';
                                @include(
        './news/einft/' $texte[$i] . '.text.einft');
                                echo 
        '</p>';
                                echo 
        '</p>';
                                echo 
        '</div>';
                                
        $i++;
                                
        $i1++;
                            }
                        }
                    }
                    
        ?>
                </div>
                <br>
                <?php
                    
        include './inc/foot.inc';
                
        ?>
            </body>
        </html>
        der code soll folgendes machen:
        PHP-Code:
        echo '<div id="d' .$i1">'; 
        => <div id="d1"> dann <div id="d2"> ...

        aber es kommt immer <div id="d1">!

        Kommentar


        • #5
          Weil die geschweifte Klammer nach dem while(...) - jedenfalls im zweiten Beispiel - fehlt!
          Dann wird nur der nächste Befehl abgearbeitet!

          Ich würds auch in einer foreach machen, da die Funktion file() eh numerische Inizes verwendet:
          PHP-Code:
          foreach($texte as $key=>$val) {
            echo 
          '<div id="d' . ($key+1) . '">';
            echo 
          '<p>';
            echo 
          '<ul><a href="./news/news.php?id=' $val '"><li>' $val '</li></a></ul>';
            echo 
          '<p id="homut">';
            @include(
          './news/einft/' $val '.text.einft');
            echo 
          '</p>';
            echo 
          '</p>';
            echo 
          '</div>';

          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            ... immer leider noch der gleiche fehler.

            Kommentar


            • #7
              Schau mal hier. (Link entfernt !)
              Dort ist das so umgesetzt, wie oben gepostet!
              Lediglich die include-Zeile habe ich weggelassen!

              Dort funktioniert es...
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Ja dann musst du jetzt langsam mal selbst bissl debuggen. Lass dir mal verschiedene Variablen ausgeben, z.b. Count($text) wie viele Schleifendurchläufe werden wirklich gemacht? Lass dir pro Schleife mal den Text "$i1 wurde erhöht" ausgeben damit du weißt wie oft es wirklich erhöht wird etc. Das ist wirklich deine Aufgabe und das sollte auch nicht so schwer sein. Du musst nur logisch denken was passieren MÜSSTE und was passiert und systematisch dem Fehler auf den Grund gehen.

                Kommentar


                • #9
                  Hm...

                  Kommentar


                  • #10
                    Zitat von MasterN Beitrag anzeigen
                    Hm...
                    Was will uns der Autor damit sagen?
                    Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                    Kommentar


                    • #11
                      Wenn du Korrekturen vornimmst und es immernoch nicht geht (was immernoch eine ziemlich blöde Fehlerbeschreibung ist) dann poste doch bitte den (neuen) Code. Entsprechend den Fehlern, die du da machst sieht das alles sehr nach reiner Unaufmerksamkeit deinerseits aus. Bitte etwas mehr Engagement und eben Aufmerksamkeit beim Programmieren!
                      "Mein Name ist Lohse, ich kaufe hier ein."

                      Kommentar

                      Lädt...
                      X