Вставка массива значений флажка в базу данных, включая непроверенные

Чтобы проверить строковое значение (не имя свойства) для RegEx, вы должны использовать ключевое слово "pattern":

{
    "type": "object",
    "properties": {
        "progBinaryName": {
            "type": "string",
            "pattern": "^[A-Za-z0-9 -_]+_Prog\\.(exe|EXE)$"
        }
    }
}

P.S. - если вы хотите, чтобы шаблон соответствовал клавише для свойства (а не значения), вы должны использовать "patternProperties" (это похоже на "properties", но клавиша - RegEx).

0
задан N.Dezi 14 July 2018 в 02:30
поделиться

1 ответ

<form method="POST" action="action.php">
    <?php
      $query = "SELECT * from student ORDER BY student_name,student_surname";
      $result=mysqli_query($conn,$query);
      if(false===$result)
      {
        printf("error: %s \n",mysqli_error($conn));
      }
      $index = 0;
      while($row= $result->fetch_assoc()) 
      {
            $index++;
            $studentmatricule = $row['student_matricule'];
            $studentname = $row['student_name'];
            $studentsurname = $row['student_surname'];
    ?>            
        <div id="studentdiv">
          <label>Matricule</label>
          <input type="text" name="studenInfo[<?php echo $index; ?>][matriculate]" value="<?php echo $studentmatricule; ?>" readonly>

          <label>Name</label>
          <input type="text" name="studenInfo[<?php echo $index; ?>][name]" value="<?php echo $studentname." ".$studentsurname; ?>" readonly>

          <label > Absent
              <input type="checkbox" name="studenInfo[<?php echo $index; ?>][status]" value="absent" />
          </label>
        </div> <br><br>
    <?php
      }
    ?>
        <input type="submit" name="submit" value="submit">

Обновите свой почтовый файл следующим образом. Я изменил имена форм в один массив. Причина в том, что значения флажка не будут отправляться на страницу, если значения не отмечены. Таким образом, невозможно отслеживать, какой из них был проверен, а какой нет, если у вас есть одно и то же имя.

И обновите свой action.php, как это,

<?php 
$conn = mysqli_connect("localhost","username","password","db_name"); // update this values as per your configuration
$studenInfo = (!empty($_POST['studenInfo'])) ? $_POST['studenInfo'] : [];
foreach($studenInfo as $value ) {
    $status = (isset($value['status'])) ? 'absent' : 'present';
    $query = "INSERT INTO exam_status (student_name, student_matricule,status) VALUES ('". $value['name'] . "','". $value['matriculate'] . "','". $status . "')";
    $result=mysqli_query($conn,$query);
}
?>

Я использовал свой собственную схему таблицы, в которой я добавил имя_экземпляра в таблице exam_status для лучшего отслеживания. Теперь вы можете правильно видеть значения. Кроме того, мы можем использовать объемную вставку, если нам нужно вставить несколько данных (Примечание: я поместил основную вставку в этот ответ, я просто следил за тем, как вы использовали)

0
ответ дан Ashok 17 August 2018 в 12:02
поделиться
  • 1
    Счастлив помочь :) Upvote, если это помогло. Также попробуйте использовать объемную вставку, если вы собираетесь вставлять несколько записей в таблицу mysql. – Ashok 14 July 2018 в 03:55
  • 2
    Я бы любил повышать, но я все еще новичок на этом сайте. Пока у меня нет достаточной репутации. – N.Dezi 14 July 2018 в 03:58
  • 3
    я понимаю, надеюсь, что вы ясно знаете мой ответ. Если у вас есть сомнения, спросите меня – Ashok 14 July 2018 в 03:59
Другие вопросы по тегам:

Похожие вопросы: