2015-06-07 8 views
5

Ich habe eine Variable, die eine Zeichenfolge mit Divs in HTML ist. und ich versuche, eine Zahl darin aufzunehmen, die bei eins beginnt und automatisch inkrementiert, so dass jedes div in aufsteigender Reihenfolge nummeriert wird.Auto Inkrement Variable in While-Schleife

while ($row9 = mysqli_fetch_array($query, MYSQLI_ASSOC)) { 
$catname9 = $row9["catname"]; 
$statusid9 = $row9["id"]; 
$i = 1; 

das ist mein während ^^

dies ist meine Zeichenfolge, die ich wiederholt Echo, bis es das Ende meiner genannte SQL-Tabelle vv erreicht

$list9 .= '<div id="each9" style="margin-top:3px" onclick="moveTo(\'.main\', '.$i.');"></div> 

dann echo i

<?php echo $list9; ?> 

also wie mache ich die erste 1 dann die zweite Wiederholung 2 und die dritte Wiederholung 3

+1

statt '$ i = 1;' versuchen '$ i ++;' die kürzere Version von '$ i = $ i + 1 ist;' –

+0

Dies als Antwort geschrieben werden soll, Jan. –

+0

das ist es !!!!! Danke !! – peter

Antwort

4

Legen Sie Ihre while-Schleife wie so nach oben:

$i = 1; 
while ($row9 = mysqli_fetch_array($query, MYSQLI_ASSOC)) { 

    // looped logic here 

    $i++; 
} 

Wichtig dabei ist es, die Zähler vor die Schleife zu initialisieren, und erhöhen es auf jeder Iteration.

Sie können es auch um andere Beträge erhöhen, wenn Sie möchten. Ersetzen Sie einfach $i++ durch ;

1

Initialisieren Sie die Variable durch $i=1 wie:

$i = 1; 
while ($row9 = mysqli_fetch_array($query, MYSQLI_ASSOC)) { 

echo $i; // will print 1,2,3 to number of count. 
$i++; 
} 
0

First off, werden Sie den Index-Variable vor der while-Schleife deklarieren müssen.
Wenn Sie es im Inneren deklarieren, wird es bei jeder Iteration eine neue Variable sein.
Wenn dies erledigt ist, müssen Sie die Variable für jede Iteration erhöhen, dies kann entweder $i++ oder $i+=1 erfolgen.

Wenn Sie möchten, dass es mit 1 und der Erhöhung beginnt, setzen Sie es auf 1 von Start und erhöhen Sie es um 1 am Ende der Schleife.

Like:

$index = 1; 
while(...) { 
    // Do stuff... 
    $index++; // increase. 
} 
+1

Ich denke, eine 'for' Schleife ist hier nicht notwendig. Es verkompliziert die Situation. 'while' und' foreach' sind die bessere Wahl, wenn es um Array-Traversierungen geht. –

+0

Ja würde ich persönlich mit der while-Schleife hier gehen. Nicht wirklich sicher, warum ich den for-loop-Teil hinzugefügt habe, habe darüber nachgedacht, seit ich das getan habe, ich habe diesen Teil entfernt, um keine Verwirrung zu verursachen;) – Jite