Поля динамической формы php / mysql не вставлены в мою таблицу - PullRequest
0 голосов
/ 09 октября 2018

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

Я не получаю ошибки, он просто вводит одну пустую запись /строка в моей базе данных каждый раз, когда я отправляю форму.Массив $ _POST заполнен всеми данными, которые мне нужны, он показывает, когда я его печатаю.

<code><?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {


  if (
     !empty($_POST['homeTeam']) && !empty($_POST['awayTeam']) && !empty($_POST['homeWin']) && !empty($_POST['awayWin']) && 
     is_array($_POST['homeTeam']) && is_array($_POST['awayTeam']) && is_array($_POST['homeWin']) && is_array($_POST['awayWin']) && 
     count($_POST['homeWin']) === count($_POST['awayWin'])
  ) {
      $homeTeam_array = $_POST['homeTeam'];
      $awayTeam_array = $_POST['awayTeam'];
      $homeWin_array = $_POST['homeWin'];
      $awayWin_array = $_POST['awayWin'];

      for ($i = 0; $i < count($homeTeam_array); $i++) {

          $homeTeam = mysql_real_escape_string($homeTeam_array[$i]);
          $awayTeam = mysql_real_escape_string($awayTeam_array[$i]);
          $homeWin = mysql_real_escape_string($homeWin_array[$i]);
          $awayWin = mysql_real_escape_string($awayWin_array[$i]);

          $sql = "INSERT IGNORE INTO CalcOdds (homeTeam, awayTeam, homeWin, awayWin) VALUES ('$homeTeam', '$awayTeam', '$homeWin', '$awayWin')"; 
          $conn->query($sql);
          $conn->close();

      }
  }
  echo "<pre>";
  print_r($_POST);
  echo "
"; echo 'Done!';}?>

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Я думаю, что проблема в том, что у вас есть $ conn-> close ();внутри цикла for попробуйте добавить его после цикла следующим образом:

     for ($i = 0; $i < count($homeTeam_array); $i++) {

          $homeTeam = mysql_real_escape_string($homeTeam_array[$i]);
          $awayTeam = mysql_real_escape_string($awayTeam_array[$i]);
          $homeWin = mysql_real_escape_string($homeWin_array[$i]);
          $awayWin = mysql_real_escape_string($awayWin_array[$i]);

          $sql = "INSERT IGNORE INTO CalcOdds (homeTeam, awayTeam, homeWin, awayWin) VALUES ('$homeTeam', '$awayTeam', '$homeWin', '$awayWin')"; 
          $conn->query($sql);            
      }
      $conn->close();
0 голосов
/ 09 октября 2018
  1. Вместо того, чтобы делать! Empty () я бы сделал isset ()

  2. Судя по всему, вы фактически не установили соединение с вашимбаза данных.

  3. Убедитесь, что данные действительно проходят через оператор if (), используя, например, echo ().

...