Timur: Array um $i++ erhöhen

Hallo,

ich bin gerade dabei über ein Link den Array jedesmal um eins zu erhöhen, wenn man drauf klickt. Keine Sorge, das hat nichts mit der Blätterfunktion zu tun.

Hier mein Codeschnipsel:

<?PHP
$weiter = array("...", "...", "...")
$a = 0;
echo"<a href="bla.php?next=".$weiter[$a++]."">NEXT</a>";
?>

Gruß
Timur

  1. Hello,

    ich bin gerade dabei über ein Link den Array jedesmal um eins zu erhöhen, wenn man drauf klickt.

    Und was ist die Frage?

    Liebe Grüße aus Syburg

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hallo,

      Naja, die Frage ist, wie ich den array jedesmal um eins erhöhe wenn man auf dem Link klickt. Ich will nämlich in der Adresszeile neben next den entsprechenden Wert haben. So wie der Code unten steht, funktioniert es nur das erste mal, das zweite mal nicht...

      <?PHP  
      $weiter = array("...", "...", "...")  
      $a = 0;  
      echo"<a href=\"bla.php?next=".$weiter[$a++]."\">NEXT</a>";  
      ?>
      

      Musst das mit einer Schleife gehen?

      Gruß
      Timur

      1. ok, danke. ich habe es so ähnlich wie in dein letztes posting in den anderen thread von mir.

        gruß
        timur

      2. Oh mann...

        Ist ein bisserl so, wie als blutiger Anfänger in nem Kochforum zu schreiben:
        "Habe alle Zutaten in den Topf geworfen, schmeckt scheisse!"

        Du brauchst Basics, ein grundlegendes Verständinis der Zusammenhänge, lebe das "SELF"...

        z.B.
        http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol

        Zu deiner konkreten Frage: Lerne zu googlen:
        http://www.tutorials.de/forum/php-tutorials/6083-gaestebuch-auf-mehrere-seiten-verteilen.html

        Grüße

      3. Hello,

        Naja, die Frage ist, wie ich den array jedesmal um eins erhöhe wenn man auf dem Link klickt. Ich will nämlich in der Adresszeile neben next den entsprechenden Wert haben. So wie der Code unten steht, funktioniert es nur das erste mal, das zweite mal nicht...

        <?PHP

        $weiter = array("...", "...", "...")
        $a = 0;
        echo"<a href="bla.php?next=".$weiter[$a++]."">NEXT</a>";
        ?>

        
        >   
        > Musst das mit einer Schleife gehen?  
          
        Das geht genauso, wie beim Blättern.  
        Darum hättest Du den Thread auch fortführen können. Bitte tu das das nächste Mal auch.  
        Wenn sich zwischendurch das thema etwas ändert, dann kannst Du über die Vorschau auch die Betreffzeile und notfalls auch die Kategorie des Threads anpassen. Das solltest Du nur nicht bei jeder Kleinigkeit tun. (sonst schimpft Pattrick :-D )  
          
        Überlege Dir genau, was der Server an Informtionen hat, wenn das Script aufgerufen hat:  
          
        Er hat das Script und die Aufrufparameter, entweder GET oder POST oder bei POST hat er ggf. sogar auch noch (die alten) GET-Parameter, wenn die URL im action-Attribut welche angehängt hat oder kein action-Attribut angegeben wurde.  
          
        Damit muss er alles berechnen.  
          
        Die Variablen im Script, also auch Dein Array, werden bei jedem Mal neu aufgebaut.  
          
        Woher soll der arme Server nun wissen, wo Du beim letzten Request, der vielleicht schon zwei jahre her ist, gewesen bist. Diese Zustandsdaten musst Du dem Server als Parameter mitliefern (andere Möglichkeiten kommen erst viel später dran :-) ).  
          
        Bei unserem Blättersricpt haben wir das über die Mitteilung der Wunschseitennummer ($page <==  $\_GET['page'] <== script.php?page=3) gemacht.  
          
        Denke Dir also einen aussagefähigen Namen für eine Zustandsvariable aus, setze sie als Wert in dein HTML-Dokument ein udn erhalte sie dann beim nächsten Request als Parameter in $\_GET oder $\_POST zurück.  
          
        Verstanden?  
          
          
        Liebe Grüße aus Syburg  
          
        Tom vom Berg  
        ![](http://selfhtml.bitworks.de/Virencheck.gif)  
          
        
        -- 
        Nur selber lernen macht schlau  
        <http://bergpost.annerschbarrich.de>
        
      4. Moin allerseits,

        <?PHP

        $weiter = array("...", "...", "...")
        $a = 0;
        echo"<a href="bla.php?next=".$weiter[$a++]."">NEXT</a>";
        ?>

          
        Tom hat das meiner Ansicht nach ziemlich umständlich formuliert. Stell dir einfach vor, was passiert, wenn der Interpreter das Script durchläuft:  
        Bei jedem Durchlauf wird $a = 0 gesetzt und deswegen wird immer ?next=1 ausgegeben. Du willst doch mit ?next deine nächste Variable beeinflussen?  
        Mach es doch so:  
        ~~~php
          
        if ($_GET['next']=="") $a = 0;  
        else $a = $_GET['next'];  
        
        

        Es geht wahrscheinlich noch kürzer, aber so kann man die Funktionsweise gut verstehen.

        Grüße, JN

        --
        ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
        http://www.johny7.de
        1. Hello,

          <?PHP

          $weiter = array("...", "...", "...")
          $a = 0;
          echo"<a href="bla.php?next=".$weiter[$a++]."">NEXT</a>";
          ?>

          
          >   
          > Tom hat das meiner Ansicht nach ziemlich umständlich formuliert.  
            
          So, so! ;-)  
            
          
          > Stell dir einfach vor, was passiert, wenn der Interpreter das Script durchläuft:  
          > Bei jedem Durchlauf wird $a = 0 gesetzt und deswegen wird immer ?next=1 ausgegeben.  
            
          Weil eben kein Zustand bekannt ist für das Programm. Es fängtr jedes mal von vorne an zu arbeiten.  
            
          
          > Du willst doch mit ?next deine nächste Variable beeinflussen?  
          > Mach es doch so:  
            
          
          > ~~~php
            
          
          > if ($_GET['next']=="") $a = 0;  
          > else $a = $_GET['next'];  
          > 
          
          

          Bitte mach es lieber so:

            
            
              $a = 0;                           ## Variable auf _jeden_ Fall initialisieren, egal was kommt!  
            
              if (isset($_GET['next']))         ## überprüfen, ob der Parameter überhaupt übermittelt wird  
              {  
                  $a = intval($_GET['next']);   ## Variable mit dem _numerischen Wert_ des Parameters  
              }                                 ## beschreiben. Wenn man sich das so angewöhnt, erspart  
                                                ## das später Kummer beim Zugriff auf Datenbanken.  
          
          

          Liebe Grüße aus dem Cyberspace

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de