• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Variable in Schleife

basti1012

Senior HTML'ler
Dieser Code
Code:
$seite=3;
for($i=0;$i<=$seite;$i++){
echo $i;
}
ergibt ja
0
1
2
3
Aber wie bekomme ich den in einer Variable zb so

Code:
$seite=3;
for($i=0;$i<=$seite;$i++){
$alleseiten=$i;
}
Hatte erst gedacht das es mit einen Plus Zeichen geht wie bei Js ,aber scheint wohl nicht.
Die ausgabe soll gleich bleiben.
0
1
2
3
 
Werbung:
Wenn du beim 2. Code in der for-Schleife ein „echo $alleseiten;“ einbaust ist es das gleiche.

PHP:
$seite=3;
for($i=0;$i<=$seite;$i++){
$alleseiten=$i;
echo $alleseiten;
}

Außerhalb der for-Schleife wird nur der letzte Wert ausgegeben, da die Variable $alleseiten immer wieder mit einem höheren Wert überschrieben wird.


LG
Alex
 
Werbung:
Jo das hatte ich gesucht,und mein vorhaben hat geklappt.Danke.
Jetzt ist noch ein anderes problem.
Im Gästebuch habe ich mein Pagniton und sql soweit das er mir die Anzahl der Einträge begrenzt und auch ausgibt wie es sein soll.
Ich mache das mit get im Link.
Das Gästebuch wird ja als echo ausgegeben.
Wenn ich jetzt einen Seitenlink anklicke werden die nächsten Einträge angezeigt.
Nur wird es hinter den vorherigen echo angezeigt und nicht überschrieben.
Er zeigt dann immer mehr an.
Er soll aber das echo von vorher überschreiben.
Google sagt mir.
ob_end_clean(); Damit kann ich das echo ja löschen aber es wird auch kein neues echo angezeigt ,weil das echo was ich damit lösche ,ist gleichzeitig das neue echo.
Ich hoffe man versteht was ich meine.
 
Dann stimmt etwas mit deiner 'Logik' nicht!
Wenn du die nächste Seite des GB mit einem Link aufrufst, dann wird die Seite auf dem Server komplett neu aufgebaut und an den Browser ausgeliefert. Wenn du das richtig machst, ist also nichts 'altes' mehr auf der Seite, das überschrieben werden müsste - es ist alles 'neu', weil dein Code es so zusammengestellt hat!

Nachtrag: Warum stellst du diese Frage nicht in deinem Gästebuch-Thread... da würde es passen.
 
Werbung:
Ich glaube das er den Link zwar setzt ,aber nicht läd.
Also ich hoffe man versteht was ich meine .
Der Link ändert sich zwar ,und läst sich auch auf rufen ,aber die Seite läd nicht neu.

Das da was nicht stimmt habe ich mir gedacht.Ist zwar schön ,weil alles sau schnell geht ,aber wie gesagt die echos werden dabei nicht gelöscht und das Script schreibt alle echos hintereinander.

Hier mit lese ich den Link aus.
Code:
if(isset($_GET['seite'])) {
 $seite = intval($_GET['seite']);
 
}

hiermit baue ich das pagniton zusammen,und wenn man dann auf die Links klickt ,stehen die neuen Links in der adressleiste und lassen sich auch wieder auslesen
Code:
$max=5;
  $runde = round($row['name']/$max);
  $vor="<a href='?seite=".round($seite+1)."'>Vor (".round($seite+1).")</a>";
  $zur="<a href='?seite=".round($seite-1)."'>Zurück (".round($seite-1).")</a>";
 $mitte="<a href='?seite=".$seite."'>Aktuelle Seite(".$seite.")</a>";
   if($runde>=10){
      for($a=5;$a>=1;$a--){
         $links.="<a href='?seite=".round($seite-$a)."'>".round($seite-$a)."</a>";
     }
     for($k=1;$k<=5;$k++){
        $rechts.="<a href='?seite=".round($seite+$k)."'>".round($seite+$k)."</a>";
    }
$pag="<span id='zur'>$zur</span><span id='links1'>$links;</span><span id='mitte1'>$mitte</span><span id='rechts1'>$rechts</span><span id='vor'>$vor;</span>";

Link zum testen
http://sebastian1012.bplaced.net/homepagebasti1012/gastebuch/gastebuch.php?seite=1

Nicht übers aussehen meckern ,disign kommt zum schluss,dann verschwinden auch die unnützigen echos.Aber die brauche ich noch damit ich sehe was das Script macht.
Pagniton unter Seite 0 sperre brauche ich auch noch,aber kein Problem bekomme ich auch noch hin.Erstmal ist mir diese sache wichtig wie man das regeln kann.
Danke fürs verständnis
 
Zuletzt bearbeitet:
Sorry... da blick ich nicht durch :(!
Das ist ja auch nur der Code für deine Pagination... und der ist schon 'Quark', selbst wenn alles andere funktioniert, kannst du damit beliebige Datenbankfehler erzeugen, weil du weder nach unten noch nach oben eine 'Sperre' eingebaut hast.
.. und was steckt in $row['name']?
Alles in Allem... es funktioniert nicht richtig! Die Anzahl der angezeigten Einträge scheint immer zufällig und anders zu sein - Einträge werden auf unterschiedlichen Seiten mehrfach angezeigt.
Da hast du noch viel Platz zur Fehlersuche.
 
Werbung:
Hatte ich ja oben erwähnt das das Pagination noch eine sperre für unter 1 brauch . aber das is ja nicht das Probem.Wird gleich behoben
Die doppelten Einträge die angezeigt werden gibt es wirklich.
Und die wirklich doppelt sind ,kommen durch das echo ,was nicht überschrieben wird.
in mein gb kannst du unten rechts sehen eintrag 1-6 von 50.
Daran kann man sehen das mit der berechnung ja alles stimmt.
In den falle jetzt soll er ja nur 5 einträge anzeigen.
Gebe ich in der db direkt von 6 bis 11 geht es ja auch.
Ich habe die vermutung das es keine Zahl ist und deswegen Fehler kommen.
Gibt es bei php sowas wie
Code:
parseInt();
weil willmeine vermutung mal testen.

Warum ist mein Pagination 'Quark', ?
 
Zuletzt bearbeitet:
Ja das hatte ich vor ein paar Einträgen schon gesagt das der Bug noch da ist.
Aber jetzt ist er weg.( wieder was geschafft JUHU :D);
Mist angewohnheit,muß hinter jeder Klammer ein Semikolion setzen:)
Jetzt muß ich nur noch das Haupt problem lösen.
Dazu muß ich erst mal den Grund finden was mit den echo los ist weil die Seiten öffnet er doch.Die Links stehen doch nicht nur einfach da ( sehe post #7);
 
Werbung:
Hmmm... ein halbes Problem gelöst ;)!
Anhang anzeigen 4941
Nach oben fehlt die Sperre noch.
Hatte ich übersehen. Jetzt ist gut.Ganzes problem gelöst.:)

Das andere Problem denke ich das ich die Datenbank abfrage falsch mache.
Hatte bei googel gesucht und dann das im sql geschrieben.
limit $start,$ende
das hat ja Teils geklappt,aber scheint falsch zu sein.
Habe das mal ohne Variabeln versucht und direkt Zahlen eingegeben,aberklappte nicht.
Ich muß da noch den richtigen Code zu er googeln. Limit wahr wohl falsch,oder falsch benutzt von mir wo von ich mal ausgehe
 
Werbung:
Das hört sich für mich wie ein Denkfehler an, denn bei mir würden die Variablen so heißen:

limit $start,$anzahl
haha ,ich blöd.:oops:
Ich hatte gestern auch BETWEEN getestet und habe wohl seid dem den falschen Ansatz im Kopf gehabt.
Klar jetzt geht es.
Durch das Pagnition habe ich ja die Anfangs Werte ja schon und muß da nix mehr dran machen(hoffe ich)..
So wieder was geschafft.
Jetzt kommt die Böse Wort Liste dran.
Gibt es Vordrucke?
Mir fallen zwar viele beleidigungen ein,aber die alle auf zuschreiben dauert ewig.
Dann müsste ich eigentlich jedes böse wort zb.
''Wurzelzwerg'' auch mit regex bearbeiten. weil wenn es einer schreiben will macht er einfach ein Punkt zwischen die Buchstaben oder leerzeichen und so weiter. Ich glaube das wird ein etwas grösserer aufwand da alles aus zuschließen.
Ich gehe mal Googlen
 
Werbung:
@Sailor Du hattest doch auch ein Pagnition gemacht ,mit etwas wenniger function (nur vor zurück glaube ich ).
Wenn du jetzt meine Pagnition kopieren würdes auf deiner art.
Frage dazu wie würdest du es angehen und mit welchen Methoden.
Weil bei mir Funktioniert es ja bestens eigentlich,nur finde ich den Code ca 50 Zeilen mit mehreren IF Abfragen ,vieleicht etwas lang.
Würde mich doch mal interesieren ob du es kürzer ( Davongehe ich stark aus) und einfacher machst.Und welche Methode du dafür verwenden tust.

Wollte nur fragen.Wenn du keine Lust hast das zu testen oder was zu schreiben kann ich das natürlich auch verstehen.Warum sollte man auch noch ein Code schreiben wenn doch ein Funktionierender da ist .
 
Kann ich versuchen.. aber ohne if's wird das auch nicht gehen... und ob es weniger als 50 Zeilen werden bleibt abzuwarten.
 
Zurück
Oben