[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление элементов массива в mysql
zoidberg
Всем привет. Столкнулся с такой проблемой. У меня есть массив $lines, каждый элемент которого мне нужно добавить в отдельную ячейку таблицы. В таблице два столбца: id, lines.

Допустим, у меня есть массив содержащий 4 элемента. Делаю так:


$insert = "INSERT INTO `$name`(`lines`) VALUES ('$line')";

foreach ($lines as $line) {
$mysqli->query($insert);
}

Но в таблице создается всего одна строка (вместо четырех), со всеми элементами массива - каждый с новой строки. Как все же разнести их по разным ячейкам?
sergeiss

// формирование запроса на вставку определенного значения
$insert = "INSERT INTO `$name`(`lines`) VALUES ('$line')";

foreach ($lines as $line) {
// повтор ОДНОГО И ТОГО ЖЕ ЗАПРОСА ровно столько раз, сколько элементов в массиве
$mysqli->query($insert);
}

Дальше сам догадаешься, куда перенести формирование запроса вставки?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
zoidberg
Если я правильно догадался, то перенос формирования запроса в тело цикла дает такой же результат. Все элементы массива записываются в одну ячейку таблицы.
AllesKlar
zoidberg
А ты не догадывайся, ты пробуй wink.gif

_____________
[продано копирайтерам]
Valick
$insert = "INSERT INTO `$name`(`lines`) VALUES ('".implode("'),('",$line)."')";


_____________
Стимулятор ~yoomoney - 41001303250491
zoidberg
AllesKlar, пробую по всякому - не получается. Потому и обратился сюда за помощью smile.gif

Valick, не совсем понял, я получу строку: "фраза один, фраза два, фраза три", добавлю ее в бд и получу тоже самое, только через запятую, а не с переносом строки smile.gif
sergeiss
zoidberg, а ты не предполагай. Ты пробуй предложенный код. Об этом тебе, кстати, в этой теме уже говорили.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Valick
zoidberg, вы определённо издеваетесь.
Вам sergeiss, написал, что если поместить запрос в цикл, то будет работать так как вам нужно, т.е. получите 4 строки в базе данных.
Но вам кажется что это не будет работать.
Так как запросы в цикле это очень плохо, я вам показал другой вариант (правильный) достижения поставленной задачи, используя многострочный инсерт.
Но вам снова кажется, что работать это будет не так как надо.
А теперь главный вопрос:
В чем проблема взять и проверить?

_____________
Стимулятор ~yoomoney - 41001303250491
zoidberg
Valick, проблема в том,что код:



foreach ($keywords as $keyword) {
$mysqli->query("INSERT INTO `$name`(`keywords`) VALUES ('$keyword')");

}


Работает также, как и:


$insert = "INSERT INTO `$name`(`keywords`) VALUES ('$keyword')";

foreach ($keywords as $keyword) {
$mysqli->query($insert);

}


Я все проверяю. Даже в мыслях не было издеваться. :unsure:
Valick
zoidberg, может вы не тот файл редактируете?
У меня была ситуация когда редактировал файл на флешке и не мог понять почему результат не меняется.


_____________
Стимулятор ~yoomoney - 41001303250491
zoidberg
Valick, нашли ошибку. Было так:
$keywords = explode('\n', $_POST['keywords'])

Вместо:
$keywords = explode("\n", $_POST['keywords'])

А ваш код работает правильно)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.