2014-09-27 3 views
0

У меня есть добавить/удалить окно ввода с помощью JQuery для добавления видеосвязи и добавить в базу данных, как это:PHP вставить несколько массив в базу данных MySQL

<input name="video[]" class="" value="" /> 
<input name="video[]" class="" value="" /> 

проверить и отфильтровать пустое значение, чем вставить не пустое значение в моей базы данных, как это:

$id = mysql_insert_id(); 

foreach(array_filter($_POST['video']) as $video_url) { 
if (!empty($video_url)) { 


$value['video_data'] = serialize((array(
array_filter($_POST['video']) 
))); 


SQL::insert("INSERT INTO " . NEWS_FILES . " (url, id,type) VALUES (?, ?, ?)", $value['video_data'], $id, "video"); 
} 
} 

Теперь в базе данных я вижу два ряда для ID:

enter image description here

НО, мне нужно вставить одну строку для каждого идентификатора.

Как это можно исправить?

редактировать:

$id = mysql_insert_id();

+1

Где код для создания переменной '$ id' ..? Вот о чем идет речь, и у нас нет информации об этом. – Ohgodwhy

+0

@Ohgodwhy: '$ id = mysql_insert_id();' –

ответ

0

Вы отметили поле идентификатора в таблице базы данных, как Auto Increment или нет?

Поскольку в соответствии с текущим кодом идентификатор $ id не обновляется нигде. Поэтому он принимает значение по умолчанию и вставляет.

Я хотел бы предложить, чтобы инициализировать $ идентификатор перед началом цикла Еогеасп, а затем делает приращение после того, как оператор SQL выполняется

SQL::insert("INSERT INTO " . NEWS_FILES . " (url, id,type) VALUES (?, ?, ?)", $value['video_data'], $id, "video"); 
$i++; 
+0

см. Мое обновление Q –

+0

mysql_insert_id - Получает идентификатор, сгенерированный в последнем запросе. Я не вижу смысла использовать mysql_insert_id так, как вы это делали. Даже если он инициализируется до некоторого значения, он не обновляется во время цикла, поэтому все тот же идентификатор будет вставлен. Кроме того, вы не указали, является ли столбец идентификатора автоматическим приращением или нет? – addicted20015

0

Вы должны создать массив значений с помощью PHP $ ар = новый массив(); $ ar [] = null; Вы отправляете данные формы multipart load Вставить команду mysqldata «Вставить данные в таблицу db» «для чисел всех строк»;

0

Если вы не имеют автоматическое приращение идентификатора, вы можете использовать

$id = "select max(id) from " .NEWS_FILES ; // execute sql and get maxid 

чем в вашем Еогеаспе добавить в верхнем $ ид ++;