Я борюсь со странной проблемой, здесь. У меня есть база данных, в которой хранится информация о отправленных приглашениях на событие и ответы на эти запросы. как:
event_id | event | attendee | invited | response
1 1 1 yes no
2 1 2 yes yes
3 2 1 no no
Далее я отображаю результаты через mysqli и php в таблице с переключателями для простого редактирования информации. НО, если я отправляю форму, это часто (не всегда) случается, что неправильные переменные POST передаются, поэтому база данных запутывается, обновляя неправильную информацию.
лица, которые пригласили и даже приняли приглашение, затем отображаются как незваные или отклоненные.
Кто-нибудь может мне сказать, в чем проблема?
//creates an empty array for the results of the database
sec_session_start();
$i = 0;
$_SESSION['i'] = array();
$_SESSION['email'] = array();
$_SESSION['ida'] = array();
$_SESSION['pid'] = array();
//db infortmaiton gets stored in the session
while ($row = $res->fetch_assoc()) {
$_SESSION['i'][] = $i;
$_SESSION['email'][] = $row["email"];
$_SESSION['pid'][] = $row["idperson"];
$_SESSION['ida'][] = $row["anmeldungsid"];
//radiobuttons with db info get displayed
<td>
<label>
<input type="radio" name="<? echo 'eingeladen'.$i?>" id="<? echo 'einja'.$i?>" value="Ja" <?php echo ($row["eingeladen"]=='Ja')?'checked':'' ?> onclick="showinvite('<? echo 'einja'.$i?>','<? echo 'link'.$i?>')"/>Ja</label><br/>
<label>
<input type="radio" name="<? echo 'eingeladen'.$i?>" id="<? echo 'einnein'.$i?>" value="Nein" <?php echo ($row["eingeladen"]=='Nein')?'checked':'' ?> onclick="showinvite('<? echo 'einja'.$i?>','<? echo 'link'.$i?>')"/>Nein</label>
</td>
//i gets counted up
<? $i++; ?> }
После отправки формы открывается скрипт с циклом foreach, проходящим через сеанс обновления базы данных
session_start();
foreach ($_SESSION['i'] as $i) {
$ida = $id[$i];
$idp = $pid[$i];
$email = $emaila[$i];
$eingeladen = $_POST['eingeladen'.$i];
$zusage = $_POST['zugesagt'.$i];
if ($update_stmt->bind_param("sssii", $eingeladen, $zusage, $bewilligt, $ida, $idp))
{
// Update des Teilnahmestatus
$update_stmt->execute();
echo "<p style = 'color:green'>neuer Status: ".$bewilligt." - ".$eingeladen." - ".$zusage."</p><br/>";
$inhaltn .= "neuer Status: ".$bewilligt." - ".$eingeladen." - ".$zusage."\n\n";
}
else {
echo "<p style = 'color:red'>Vorbereitung des Update Befehls klappt nicht! TeilgenommenID: ".$idteilgenommen."</p><br/>";
}
}
Как я уже сказал, похоже, что работает, но не постоянно ....