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

for-Schleife

Status
Für weitere Antworten geschlossen.

Mars@Gera

Mitglied
Wollte mal fragen, warum meine for-Schleife nicht geht.

PHP:
<?php echo '<select name="ergebnis" size="1">';
                 $i=1;
                 for ($i=1;$i<31;$i++){
                     echo "$i";
                         }
        echo '</select> &nbsp;';

MfG Marcel
 
PHP:
<?php

echo '<select name="ergebnis" size="1">';

for ($i = 1; $i < 31; $i++)
{
    echo '<option>'.$i.'</option>';
}

echo '</select>';

?>

vielleicht weil nichtmal dein HTML richtig war? ^.^
 
Stimmt danke!
Und wie kann ich es bewerkstelligen, das ich vor der 1 ein "nichts" habe, also, leer!

Gewusst wie ich es meine?

MfG Marcel
 
PHP:
<?php

echo '<select name="ergebnis" size="1">'."\r\n";
echo '    <option selected="selected"></option>'."\r\n";

for ($i = 1; $i < 31; $i++)
{
    echo '    <option>'.$i.'</option>'."\r\n";
}

echo '</select>'."\r\n";

?>
 
Da hätte ich noch eine Frage, da wir gleich beim Thema sind.

Man hätte hier auch eine while Schleife nehmen können, oder nicht?

Da frag ich mich, was es genau bringt, eine for Schleife zu machen (die ich eigendlich noch nie richtig kapiert habe).



MfG, matibaski
 
Es ist eifnach so, es gitb immer mehrere Schleifen in einer Sprache. Man kann alle Schleifen in eine andere verwandeln, sie also so programmieren, dass sie funktioniert wie eine andere. Es erleichtert nur manchmal einfach die Arbeit. Bei "for" hat man die Zählervariable halt mit in der Schleife und übersichtlcih aufgezählt, was die Schleife genau macht. Bei einer while Schleife kann man auch auf eine Zeit oder einen -Tastendruck hin alles wiederholen.
Es ist letzendlich immer seine eigene Entscheidung, was man wann nimmt. Kommt auf die Lesbarkeit des Codes und die Funktion an, letzendlich aber auch auf das, was man am liebsten benutzt. ;-)

Gruß Corvulus
 
PHP:
<?php
//while
$i = 1;
while($i <= 10) {
  echo $i;
  $i++;
}

//for
for($i = 1; $i <= 10; $i++)
  echo $i
?>
Kürzer, oder ;)

for-Schleifen benutzt man meistens wenn man weiß wie oft eine Schleife durchlaufen werden soll.
 
und die while eher währen eine bedingung erfüllt ist als z.b. während mysql_fetch_assoc ein ergebniss ausgibt
PHP:
$query = mysql_query("SELECT * FROM `tabelle` WHERE `spalte` = 'condition'");
while( $row = mysql_fetch_assoc( $query ) )
{
    // mach was $row
}

hier könnte man zwar auch die for mit mysql_num_rows verwenden

PHP:
$query = mysql_query("SELECT * FROM `tabelle` WHERE `spalte` = 'condition'");
$ergebnisse = mysql_num_rows( $query );
for($i = 0, $row = mysql_fetch_assoc( $query );
    $i < $ergebnisse;
    $i++, $row = mysql_fetch_assoc( $query ))
{
    // mach was mit $row
}

dabei währe der einzige vorteil das man gleich als $i + 1 die nummer des eintrages hätte aber das kann man auch einfach in ne while schleife packen so dass es übersichtlicher aussieht ^^

MFG Miah
 
Oke, vielen dank für die gute erklärung.

Nur wobei ich mich für das $i++ immer frage.

Genügt ein + nicht?

Sorry, hab aber noch nie sowas benutzt, und was neues schadet ja nicht, oder? ;)

edit:
++ steht doch dafür, dass es um 1 erhöht wird, genügt da ein + nicht? (Frage noch anders formuliert :D)
 
Normalerweise schreibt man $i = $i + 1; oder halt eine andere Zahl als 1. Wenn man nun aber den Wert 1 hat, dann darf man als Ausnahme $i++ schreiben. Nicht nur in Schleifen, sondern immer, es wird ja auch durch ein Semikolon getrennt.
Das ist bei for-Schleifen halt meistens der Fall, da man Beiträge, Felder oder ähnliches durchzählt.
Man kann aber auch in 10er Schritten alle Zahlen von 10 bis 100 Ausgeben:
PHP:
<?
//lang
for($i = 10; $i <= 100; $i = $i + 10) {
echo $i;
}
//kurz
for($i = 10; $i <= 100; $i = $i + 10) echo $i;
?>

Gruß Corvulus
 
wieso sollte ein + genügen?

PHP:
$i = $i + 1;
// oder
$i++;
//oder
++$i;

// den unterschied zwischen ++$i und $i++ kannste ja aus diesem beispiel herauslesen ^^

$i = 0;
$z = 0;
echo 'die variable $i ist '.$i++.' und die variable $z ist'.++$z;
 
Generell teilt man in Increment und Decrement.
Es gibt dann jeweils 2 Unterarten:
post-increment/decrement
pre-increment/decrement

Der unterschied zwischen increment und decrement ist nur der, dass increment aufwärts zählt (1,2,3) und decrement abwärts (3,2,1).
Post und pre kommen aus dem Lateinischen und bedeuten (post) nach und (pre) vor was sich in PHP so schreibt:
PHP:
// Increment
// Post-Increment
$i = 2;
echo $i++;
echo $i;
//Da hier Post-Increment benutzt wird (also NACH) sieht die Ausgabe so aus:
// 2
// 3
// beim 1. Echo wird die Variable zuerst ausgegeben und DANACH erhöht

// Pre-Increment
$i = 2;
echo ++$i;
echo $i
//Da hier Pre-Increment benutzt wird (also VOR) sieht die Ausgabe so aus:
// 3
// 3
// beim 1. Echo wird die Variable ausgegeben und VORHER erhöht
Bei Decrement ganz Genauso
PHP:
//Post-Decrement
$i = 2;
echo $i--;
echo $i;
//Ausgabe:
//2
//1

//Pre-Decrement
$i = 2;
echo --$i;
echo $i;
//Ausgabe:
//1
//1
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben