Разноска простой формы в 2 таблицы с помощью PHP - PullRequest
1 голос
/ 18 июня 2019

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

Я проверил данные и их сбор и проверил отправку только в 1 таблицу и все еще не отправлял никакой информации.

Форма:

  <div class="container"><center>
    <form action ="<?php echo $_SERVER['REQUEST_URI']; ?>" method ="post">
    <table class="form-table" id='student'>
    <tbody>
    <tr>
    <th>Class</th>
    <th>Assignment Id</th>
    <th>Student Name</th>
    <th>Grade</th>
    </tr>
    <?php foreach($students as $row){ ?>
    <tr>
    <input type="hidden" name="student_name" size="30" value="<?php echo "$row->student_name" ?>">
    <input type="hidden" name="student_id" size="30" value="<?php echo "$row->student_id" ?>">
    <td><Center><?php echo "$class"; ?></Center></td>
    <td><Center><?php echo "$assign"; ?></Center></td>
    <td><Center><?php echo "$row->student_name"; ?></Center></td>
    <td><Center><input type="text" name="grade" size="15" placeholder="Points"></Center></td>
    </tr>
    <?php } ?>
  </tbody>
    </table>
    <p class="submit"><Center><input type="submit" name="submitgrade" id="submitgrade" class="button button-primary" value="Submit" /></center></p>  </form>
  </center></div>

MYSQL-запрос:

  if ($_POST['submitgrade']){
    global $wpdb;
    $success = $wpdb->insert(
             'sodae_grades',
             array(
             "student_name" => $_POST['student_name'],
         "student_id" => $_POST['student_id'],
         "class_of" => $class,
             "assignment_name" => $assign,
             "grade" => $_POST['grade']
       )
     );

       $success2 = $wpdb->update(
           'sodae_enrolled',
           array(
           "grade" => $_POST['grade']
          ),
          array(
            "student_id" => $_POST['grade'] + $count
          )
        );

        if($success) {
          echo ' Inserted successfully';
                    } else {
             echo 'not';
             }
         if($success2) {
              echo ' Inserted successfully2';
                        } else {
                 echo 'not2';
                 }
        }

Оба заявления возвращаются как не опубликованные, и в базе данных ничего нет.

РЕДАКТИРОВАТЬ: я попытался определить ('WP-DEBUG', правда); и $ wpdb-> print_error (); без ошибок я проверил другие формы, и ни одна из них не публикует сообщения, кроме тех случаев, когда я использовал wp_insert_user, но это, конечно, только для ввода пользователя.

Ответы [ 2 ]

1 голос
/ 18 июня 2019

Возможно, он не распознает префикс таблицы.Вы также должны указать тип данных, например, строку (% s) или целое число (% d).Попробуйте что-то вроде этого:

    global $wpdb;
    $table_name = $wpdb->prefix . 'sodae_enrolled';
    $wpdb->insert($table_name, array(
         "student_name" => $_POST['student_name'],
         "student_id" => $_POST['student_id'],
         "class_of" => $class,
         "assignment_name" => $assign,
         "grade" => $_POST['grade']
    ), array(
        "%s",
        "%s",
        "%s",
        "%s",
        "%s"
    ));
0 голосов
/ 19 июня 2019

Итак, используя $ wpdb-> last_error, я смог исправить несколько ошибок, связанных с полями в базе данных, и исправить некоторые опечатки. легко исправить, как только у меня появилось руководство по ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...