Вставьте два массива в одну таблицу MySQL - PullRequest
2 голосов
/ 21 июля 2011

Я новичок в PHP и пытаюсь вставить данные из двух массивов в одну таблицу mysql.

В таблице хранятся следующие поля: date, case_id, statusid

case_id будет одинаковым для всех записей, вставленных в один оператор, и значение будет получено из переменной сеанса.

массив date и массив status_id оба отправляются из формы;Я знаю, что оба массива отправляют нормально, потому что я использовал для каждого цикла, чтобы вставить оба массива в таблицу по отдельности.

Любая помощь будет высоко ценится.Я оставил условие foreach пустым для предложений.

$caseid = mysqli_real_escape_string($link, $_SESSION['caseid']);
$status = $_POST['statuses'];
$date = $_POST['dates'];

foreach() {
    $sql = " INSERT INTO casestatus (date, case_id, statusid) VALUE 
                                    ('$date', '$caseid', '$statusid') ";

    if (!mysqli_query($link, $sql)) {
        $error = 'Error assigning selected statuses to case.';
        include 'error.php';
        exit();
    }
}

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Попробуйте это.

// Avoid SQL Injections.
$caseid = mysqli_real_escape_string($link, $_SESSION['caseid']); 
$statuses = $_POST['statuses']; 
$dates = $_POST['dates'];

$i = 0;
foreach($statuses as $status)
{
  if($i < sizeof($dates))
  {
    $statusid = mysqli_real_escape_string($status);
    $date = mysqli_real_escape_string($dates[$i]); 
    $sql = "INSERT INTO casestatus (date, case_id, statusid) VALUES ('$date', '$caseid', '$statusid')";
    $i++:
  }
  // etc...
}

Не забудьте заменить VALUE на VALUES в своем выражении INSERT.

0 голосов
/ 21 июля 2011

Вам нужно использовать mysqli_real_escape_string на всех ваших значениях, если вы не хотите быть pwnd.

$caseid = mysqli_real_escape_string($link, $_SESSION['caseid']); 
$statuses = mysqli_real_escape_string($link,$_POST['statuses']); 
$dates = mysqli_real_escape_string($link,$_POST['dates']);  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...