Dies ist mein Code:Daten in verschachtelten foreach-Schleifen in Update-Abfrage verwendet
session_start();
/* loops through each row in the global $_SESSION variable which
contains the array and uses the $value to GET the data in the text
boxes and output them */
// studevent_result =
foreach ($_SESSION['arrayNameResult'] as $value) {
$studResult = $_GET[$value];
echo $studResult;
echo "<br>";
}
// result_postion =
foreach ($_SESSION['arrayNamePosition'] as $value) {
$studPosition = $_GET[$value];
echo $studPosition;
echo "<br>";
}
echo "<br>";
// stud_id =
foreach ($_SESSION['arrayId'] as $value) {
echo $value;
echo "<br>";
}
// UPDATE query, this will update the studevent_result and result_position
// column in the database for the specific stud_id.
$updateQuery = "
UPDATE result
SET studevent_result = '00:20:33',
result_position = '6'
WHERE result.stud_id = '12'
";
$updateRow = mysqli_query($conn, $updateQuery);
I $ _SESSION Variablen verwenden, die alle ein Array speichern. Ich extrahiere die Ergebnisse dieser Arrays mit foreach-Schleifen.
In $ updateQuery möchte ich studevent_result = zu den Ergebnissen meiner ersten foreach-Schleife, result_position = zu den Ergebnissen der zweiten foreach-Schleife oben und result.stud_id = zu den Ergebnissen der dritten foreach-Schleife oben machen .
Nach mir den Code bearbeite meinen Code nun wie folgt aussieht:
foreach ($_SESSION['arrayNameResult'] as $value) {
$studResult = $_GET[$value];
foreach ($_SESSION['arrayNamePosition'] as $data) {
$studPosition = $_GET[$data];
foreach ($_SESSION['arrayId'] as $idValue) {
echo $idValue;
$updateQuery = "
UPDATE result
SET studevent_result = '$studResult',
result_position = '$studPosition'
WHERE result.stud_id = '$idValue'
";
$updateRow = mysqli_query($conn, $updateQuery);
}
}
}
I Schleifen verschachtelt die foreach. Das Problem ist nun, dass für die letzte foreach-Schleife in den verschachtelten Schleifen $ idValue in der Abfrage nur das letzte Element im Array $ _SESSION ['arrayId'] verwendet. Wie kann ich das beheben, um das gesamte Array durchzulaufen, so dass die Abfrage alle Werte im Array verwendet?
Vielen Dank im Voraus.
Ihr Code ist anfällig für SQL-Injektion. Bitte lesen Sie [Wie kann ich SQL-Injection in PHP verhindern?] (Http://StackOverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) für Informationen, wie man es beheben kann . –