2016-03-29 3 views
-1

Заранее благодарю за предоставленную помощь! Я очень новичок в PHP и буду любить некоторые советы/помощь! Я хочу, чтобы многие поля id, разделенные запятой, вводились в базу данных отдельно с той же переменной идентификатора ресурса.Добавление нескольких полей, разделенных запятой в базу данных PHP

Find a link to a picture here! Here, a user enters many ids for the name, and only one ID for the resource, I would like all ids to be entered into the database with the same resource id beside it

//so this is creating the array to split up the ids 
$array = explode(",", $id); 
//finding length of array 
$length = count($array); 
//now we want to loop through this array, and pass in each variable to the db 
for ($x = 0; $x < $length; $x++) { 
$sqlinsert= "INSERT INTO ids_to_resources (id, resource_id) 
    VALUES ($id [$x], $resource_id)" 

    $result = mysqli_query($dbcon,$sqlinsert); 
} 

Я думаю, что это может быть что-то вроде этого кода выше, но он не кажется, что работает для меня ... Короче я хочу пользователю вводить много полей ID и только один ресурс поле, и для этого нужно вводить в базу данных отдельно. Я надеюсь в этом есть смысл! Еще раз спасибо за любую помощь!

ответ

0

Вы не имеют точку с запятой после этой строки, и вы musnt't есть пространство между $ Ид и [$ X]

$sqlinsert= "INSERT INTO ids_to_resources (id, resource_id) 
VALUES ($id[$x], $resource_id)"; 
0

Вы бы лучше создать отдельную таблицу, которая имеет новую строку для каждой записи ... столбцы будут ID, NINJA_ID, RESOURCE_ID. Затем вставьте его таким образом. Поместите индекс в RESOURCE_ID. Таким образом, вы можете легко найти базу данных для конкретных записей, обновление и удаление будет намного проще.

Но если вы настаиваете на том, запятых,

$comma_ids = implode("," $array);

1

Чтобы только ответить на ваш вопрос и не ставит под сомнение схему базы данных. Посмотрите на следующий код:

$ids = explode(",", $id); 
$inserts = array(); 
foreach ($ids as $id) { 
    $inserts[] = "($id,$resource_id)"; 
} 
$query = "INSERT INTO ids_to_resources (id,resource_id) VALUES " . implode(',', $inserts) . ";"; 

Вы можете вставить несколько строк в одном запросе SQL, разделяя их запятыми. Код должен сгенерировать такой запрос:

INSERT INTO ids_to_resources (id,resource_id) VALUES (1,4),(2,4),(3,4); 
Смежные вопросы