цикл foreach дублирует значения php sql

0

Почему этот двойной цикл foreach дублирует значения

 foreach($_POST['studentpoints'] as $value) {
        foreach($_POST['studentids'] as $valor) {
            $stmt->bindParam(':studentid', $studentids);
            $stmt->bindParam(':studentpoints', $points);
            $studentids = $valor; 
            $points = $value;
            $stmt->execute();
        }

Этот код не дублирует значения, а только читает первый идентификатор для студентов

foreach($_POST['studentpoints'] as $value) { 
        foreach($_POST['studentids'] as $valor) {
           $studentids = $valor;
        }

   $stmt->bindParam(':studentid', $studentids);
            $stmt->bindParam(':studentpoints', $points);
            $studentids = $valor; 
            $points = $value;
            $stmt->execute();

}

Таблица с данными из базы данных

<?php foreach($rowstudents as $row): ?>
  <tr>
    <th><input type="hidden" name="studentids[]" value="<?php echo ' ' . htmlentities($row['studentid'], ENT_QUOTES, 'UTF-8') . ' ';?>" />
    <?php echo '' . htmlentities($row['studentid'], ENT_QUOTES, 'UTF-8') . '';?></th>  
    <th><?php echo '' . htmlentities($row['fname'], ENT_QUOTES, 'UTF-8') . '';?></th>
    <th><?php echo '' . htmlentities($row['lname'], ENT_QUOTES, 'UTF-8') . '';?></th> 
    <th><input type="text" name="studentpoints[]" value="<?php echo '' . htmlentities($row['studentpoints'], ENT_QUOTES, 'UTF-8') . '' ?>"></th>
  </tr>
<?php endforeach; ?>
</table>
  • 1
    Вы называете двойной foreach, поэтому
  • 0
    Можно ли преобразовать эти два цикла в один?
Показать ещё 3 комментария
Теги:

2 ответа

2
Лучший ответ
   for ($i=0; $i<count($_POST['studentpoints']); $i++) {
           $studentids = $_POST['studentid'][$i]; 
           $points = $_POST['studentpoints'][$i];

           $stmt->bindParam(':studentid', $studentids);
           $stmt->bindParam(':studentpoints', $points);
           $stmt->execute();

   }
  • 0
    Спасибо, я пытаюсь это, но это выдает предупреждение. Предупреждение: недопустимое смещение строки 'studentid' и ошибка. Неустранимая ошибка: только переменные могут быть переданы по ссылке в
  • 0
    Я отредактировал это, попробуйте еще раз.
Показать ещё 6 комментариев
4

Вы используете для каждого цикла дважды. Кроме того, нет никаких проблем

  • 0
    Да, я вижу, что: / что я пытаюсь сделать, это заключить эти две петли в одну

Ещё вопросы

Сообщество Overcoder
Наверх
Меню