Variable erhöhen
Marco
- php
3 Edgar Ehritt0 Marco
Nabend,
ich komme einfach nicht weiter.
Folgendes Problem:
Ich möchte gerne eine Fordlaufende Nummer in eine While Schleife einbinden.
Hier mein Code:
<?php
$ergebnis=mysql_query("SELECT name1, name2 FROM tabelle1, tabelle2 WHERE tabelle1.pid = tabelle2t.pid ORDER BY name1 DESC");
?>
<table width="100%">
<?php
while($ausgabe=mysql_fetch_object($ergebnis)){
echo '<tr>'."\n";
echo '<td>'.$ausgabe->name1.'</td>'."\n";
echo '<td>'.$ausgabe->name2.'</td>'."\n";
echo '</tr>'."\n";
}
?>
</table>
Ergebniss:
user1 user2
user1 user2
user1 user2
user1 user2
usw.
Jetzt möchte ich da gerne noch eine Spalte einfügen, wo sich die Fortlaufenden Nummern befinden.
Ergebniss:
1 user1 user2
2 user1 user2
3 user1 user2
4 user1 user2
usw.
Eine Fortlaufende Nummern mache ich ja zb. so:
$nummer = 1;
$nummer++;
echo $nummer;
Aber wie binde ich die Fortlaufende Nummer jetzt in die While Schleife ein?
Vielen Dank für eure Hilfe
Marco
Hallo Marco,
die einfachste Variante wäre:
$nummer = 1;
while($ausgabe=mysql_fetch_object($ergebnis)){
echo '<tr>'."\n";
echo '<td>'.($nummer++).'</td>'."\n";
echo '<td>'.$ausgabe->name1.'</td>'."\n";
echo '<td>'.$ausgabe->name2.'</td>'."\n";
echo '</tr>'."\n";
}
Gebräuchlicher ist es aber in solchen Fällen auf for zurückzugreifen, wobei im Beispiel $nummer als $i benannt ist:
for($i=1;$ausgabe=mysql_fetch_object($ergebnis);$i++){
echo str_replace(
array(0,1,2),
array($i,$ausgabe->name1,$ausgabe->name2),
"<tr>\n<td>0</td>\n<td>1</td>\n<td>2</td>\n</tr>\n"
);
}
Gruß aus Berlin!
eddi
Hi,
nice, gleich 2 Beispiele. Vielen Dank beide Varianten funktionieren einwandfrei.
Hab da noch eine Frage:
echo '<td>'.($nummer++).'</td>'."\n";
Wieso muss $nummer++ in Klammern gesetzt werden?
Vielen Dank für deine Hilfe und erklärung.
Marco
Re:
echo '<td>'.($nummer++).'</td>'."\n";
Wieso muss $nummer++ in Klammern gesetzt werden?
Es muss nicht in Klammern gesetzt werden.
Gruß aus Berlin!
eddi