hallo leude,
habe ein kleines problem mit einem session-array. anstatt einen wert hinzuzufügen wird nur der [0]-wert überschrieben. woran liegts? es betrifft im folgenden script die session-variable/array $_SESSION["idarray"]. Die Ausgaben im mittleren und unteren Teil dienen nur zur Problemanalyse.
hier das script:
PHP-Code:
if($_SESSION["testtyp"] == "Zufall" AND isset($_POST['next']))
{
if($_SESSION["awtyp"] == "radio")
{
$updatetemp = "INSERT INTO temp (TestID, FrageID, UserID, AntwortID, Time) VALUES ('$_SESSION[testid]', '$_SESSION[frageid]', '$_SESSION[userid]', '$_POST[antwort]', NOW());";
$update = mysql_query($updatetemp) OR die (mysql_error());
radiocheck();
}
else
{
$elemente = count($_POST) - 1;
$nr = 0;
foreach($_POST as $wert)
{
$nr = $nr + 1;
if($nr <= $elemente)
{
$updatetemp = "INSERT INTO temp (TestID, FrageID, UserID, AntwortID, Time) VALUES ('$_SESSION[testid]', '$_SESSION[frageid]', '$_SESSION[userid]', '$wert', NOW());";
$update = mysql_query($updatetemp) OR die (mysql_error());
}
else
{
break;
}
}
checkboxcheck();
}
if($_SESSION["nummer"] < $_SESSION["anzahl"])
{
foreach ($_SESSION["idarray"] as $i)
{
echo $i;
}
$counter = "SELECT COUNT(*) AS total FROM fragen WHERE Kategorie = '$_SESSION[kategorie]';";
$counterquery = mysql_query($counter) OR die(mysql_error());
$eintraege = mysql_fetch_assoc($counterquery);
$gesamtfragen = $eintraege['total'];
mt_srand((double)microtime()*1000000);
$id = mt_rand() % $gesamtfragen + 1;
$idarray = array();
while(in_array($id, $_SESSION["idarray"]))
{
mt_srand((double)microtime()*1000000);
$id = mt_rand() % $gesamtfragen + 1;
}
//HIER SOLL NUN DIE ID HINZUGEFÜGT WERDEN
$_SESSION["idarray"][] = $id;
$queryfrage = "SELECT * FROM fragen WHERE FrageID = $id;";
$userquery = mysql_query($queryfrage) OR die(mysql_error());
$row = mysql_fetch_assoc($userquery);
$typ = $row['FrageTyp'];
$frage = $row['Frage'];
$_SESSION["nummer"] = $_SESSION["nummer"] + 1;
}
else
{
header('Location:auswertung.php');
}
foreach ($_SESSION["idarray"] as $i)
{
echo $i;
}
}