2016-06-20 13 views
0

Ich habe eine "Tabelle" Tabelle, die Teams von 1-42 durch eine MySQL-Abfrage rangiert. Was ich versuche, ist den Rang von der ersten Seite abrufen, um auf der Seite jedes Teams über PHP angezeigt werden. Ich konnte dies mit einer zweiten GET-Methode über den Link team.php zum Laufen bringen, aber es scheint einfach nicht richtig zu sein, den Rang in der URL zusammen mit der Team-ID zu haben.Abrufen der Variablen von einer Seite zur Anzeige auf der zweiten Seite in PHP

Hier ist meine aktuellen Code auf der Seite Tabellen:

for($i = 0; $i < $rows; $i++) { 
$result->data_seek($i); 
$row = $result->fetch_array(MYSQLI_NUM); 
$rank = $row[12]; 
$teamid = $row[0]; 

echo "<tr>"; 
echo "<td class='rank'>" . $rank . "</td>"; 
echo "<td class='left'><a href='team.php?team_id=$teamid&rank=$rank'>$row[1]</a></td>"; 
for($j = 2; $j < 11; $j++) echo "<td>$row[$j]</td>"; 
echo "</tr>"; 
} 

und dann wird die Seite des einzelnen Team:

$teamid = $_GET['team_id']; 
$rank = $_GET["rank"]; 

ich dann nur noch die $ Rang variable Echo, das Team Rang anzuzeigen, die funktioniert gut. Gibt es jedoch eine bessere Möglichkeit, die Rangvariable abzurufen, ohne sie über den href zu senden? So kann ich das ändern:

echo "<td class='left'><a href='team.php?team_id=$teamid&rank=$rank'>$row[1]</a></td>"; 

Zurück zu:

echo "<td class='left'><a href='team.php?team_id=$teamid'>$row[1]</a></td>"; 

Während der Rang in einer anderen Art und Weise abrufen?

Ich sollte beachten, ich habe auch versucht, eine SESSION-Variable zu verwenden, um den Rang von der ersten Seite abzurufen. Die Seite jedes Benutzers zeigt jedoch den Rang '42' an, da die for-Schleife die Variable SESSION bis zur letzten Zeile überschreibt. Wie unten gezeigt:

session_start(); 
for($i = 0; $i < $rows; $i++) { 
$result->data_seek($i); 
$row = $result->fetch_array(MYSQLI_NUM); 
$_SESSION["rank"] = $row[12]; 
$teamid = $row[0]; 

echo "<tr>"; 
echo "<td class='rank'>" . $_SESSION["rank"] . "</td>"; 
echo "<td class='left'><a href='team.php?team_id=$teamid'>$row[1]</a></td>"; 
for($j = 2; $j < 11; $j++) echo "<td>$row[$j]</td>"; 
echo "</tr>"; 
} 
+0

können Sie nur eine Session-Variable gesetzt –

+0

ich versucht habe, dies zu tun, aber die Variable zeigt den gleichen Rang „42“ für jedes Team auf der Seite team.php. –

Antwort

2

Eigentlich versucht so, wie Sie richtig ist .. Aber, wenn Sie nach einer Alternative immer noch suchen, wäre eine Methode, jedes Team Rang in einer separaten Sitzung Variablen speichern sein ... etwas wie $_SESSION[$teamid] = $rank;

for($i = 0; $i < $rows; $i++) { 
$result->data_seek($i); 
$row = $result->fetch_array(MYSQLI_NUM); 
$rank = $row[12]; 
$teamid = $row[0]; 
$_SESSION[$teamid] = $rank; 
echo "<tr>"; 
echo "<td class='rank'>" . $rank . "</td>"; 
echo "<td class='left'><a href='team.php?team_id=$teamid'>$row[1]</a></td>"; 
for($j = 2; $j < 11; $j++) echo "<td>$row[$j]</td>"; 
echo "</tr>"; 
} 

Dann auf Sie einzelne Seite kann man sich so etwas wie versuchen:

$teamid = $_GET['team_id']; 
$rank = $_SESSION[$teamid]; 
+0

Ihre alternative Methode ist in der Richtung, die ich dachte. Es gibt jedoch keine Daten zurück, wenn ich $ rank widerlege. –

+0

setzen Sie 'session_start()' am Anfang beider Seiten? –

+0

Ja, und die Sitzungen kommunizieren, wenn ich einige grundlegende Testdaten einfüge. –