2010-12-05 8 views
1

ich Konstanten festgelegt habe, einen Start Jahr und ein Ende Jahr
, so habe ich eine While-Schleife unter der Bedingung gebaut, dassphp Wert erhöht

if the start year is < than the current year increment until true. 

das Problem, das ich habe ist, dass anstatt sie steigen wie folgt aus:

1999,2000,2001,2002,2003,2004 

es geht so:

1999,2001,2003,2005,2007,2009 

Hier ist mein Code:

function yearCount() 
{ 
    $yearBegin = START_YEAR; 
    $yearCurrent = CURRENT_YEAR; 
    while($yearBegin < $yearCurrent){ 
    echo "<option value=\"".$yearBegin++."\">".$yearBegin++."</option>"; 
    } 
} 

alle Ideen würden sehr geschätzt werden.

+1

zeigen Sie Ihren Code bitte. – RobertPitt

+0

In Ihrem Code ist etwas nicht in Ordnung. –

+0

Wir brauchen den Code, um das Problem zu finden. – Shoe

Antwort

5

Sie Erhöhen Sie den Wert zweimal:

echo "<option value=\"".$yearBegin++."\">".$yearBegin++."</option>"; 

Jede $yearBegin++ es um eins erhöht.

Verwendung einer for-Schleife statt:

for ($yearBegin = START_YEAR; $yearBegin < CURRENT_YEAR; $yearBegin++) 
{ 
    echo "<option value=\"".$yearBegin."\">".$yearBegin."</option>"; 
} 
0

Sie erhöhen yearBegin $ zweimal, einmal in der Werteteil, eine Zeit in dem Anzeigeteil ...

Sie müssen es ändern, so erhöht er nur einmal

3
function yearCount() 
{ 
    $yearBegin = START_YEAR; 
    $yearCurrent = CURRENT_YEAR; 
    while($yearBegin < $yearCurrent){ 
    $this_year = $yearBegin++; 
    echo "<option value=\"".$this_year."\">".$this_year."</option>"; 
    } 
} 
0

Sie es erhöhen zweimal, einmal als Wert einstellen, und das zweite Mal, es in Option-Tag

1

Verwendung nur einmal ++, erhöhen

echo "<option value=\"".$yearBegin."\">".$yearBegin++."</option>"; 
012 Anzeigen
4

einer for-Schleife ist in der Regel die Art und Weise, dies zu tun,

for($year=START_YEAR;$year<=CURRENT_YEAR;$year++) 
{ 
    //User the $year here 
} 

Ihr Problem mit dem Code ist, dass Ihre $yearBegin++ 2 mal innerhalb der anruf While-Schleife, wodurch es zweimal erhöht wird.

mit der for-Schleife ist viel sauberer dann als Inkrementieren erfolgt innerhalb der Ausdruck für Sie