2016-04-03 9 views
0

Ich habe diesen Code:

// Values of drop-down lists (cmbPosition) 
$studPosition = array(); 
$i = 0; 
foreach ($_SESSION['arrayNamePosition'] as $value) { 
    $studPosition[$i] = $_GET[$value]; 
    $i++; 
// Calculates the points for each student in the event 
    $points = ($_SESSION['noStudents']+1) - $_GET[$value]; 
    echo $points; 
    $_SESSION['points'] = $points; 
} 

Der obige Code durch $_SESSION['arrayNamePosition'] Schleifen, die ein Feld enthält. Alles funktioniert, aber $_SESSION['points'] = $points; ist, wo das Problem ist (Dies ist die $ _SESSION-Variable, die $points enthält).

Wenn I $points im aktuellen PHP Form Echo, es gibt: 583276

Aber wenn ich echo $_SESSION['points'] innerhalb einer while-Schleife in einer anderen PHP Form gibt es nur das letzte Element $ echo $_SESSION['points'] Punkte gespeichert, in der 6 ist. Wie kann ich das beheben, so dass echo $_SESSION['points'] alle Werte von $points in einer anderen PHP-Form ausgibt.

HINWEIS: Ich habe auch echo $_SESSION['points'] innerhalb einer for-Schleife gesetzt, aber es gibt immer noch den letzten in $ Punkten gespeicherten Wert aus. z.B. Ausgabe: 666666

Vielen Dank im Voraus.

Antwort

3

Es ist, weil $ _SESSION ['Punkte'] selbst kein Array ist. Sie sollten Ihre Zeile ändern in:

+0

Also, wenn ich Ausgang '$ _SESSION [‚Punkte‘]' ich nur 'echo $ _SESSION [‚Punkte‘]' oder eine Schleife zur Ausgabe verwendet die 583.276 Werte in der andere Form? – SubZero

+0

Sie können print_r ($ _ SESSION ['Punkte']) verwenden, wenn es nur für Debugging-Zwecke ist. – rcpinto

0

Variable Punkte ist kein Array, daher enthält es nur zuletzt berechnetes Element. Ändern Sie es in Array und speichern Sie dann jeden Wert als neues Element im Array.

0

Ich denke, Sie meinen, dass die Schleife mit echo $points; Sie 583276 ausgibt. Wie die $_SESSION['points'] speichert es nur einen Wert, aber Sie drucken den Wert jedes Mal. Ich würde vorschlagen, folgende Änderungen:

$studPosition = array(); 
$i = 0; 
$points = ''; 
foreach ($_SESSION['arrayNamePosition'] as $value) { 
    $studPosition[$i] = $_GET[$value]; 
    $i++; 
    $points = $points.(($_SESSION['noStudents']+1) - $_GET[$value]); 
} 
echo $points; 
$_SESSION['points'] = $points; 
Verwandte Themen