Есть массив $consist со значениями из формы, вообще, он выглядит у меня так (довольно мудрено я считаю, может подскажите способ попроще) PHP: $consist = array("<li>".$_GET['consist1']."</li>","<li>".$_GET['consist2']."</li>" ); if(!empty($_GET['consist3'])){array_push($consist,"<li>".$_GET['consist3']."</li>");} else { unset ($_GET['consist3']);} if(!empty($_GET['consist4'])){array_push($consist,"<li>".$_GET['consist4']."</li>");} else { unset($_GET['consist4']);} if(!empty($_GET['consist5'])){array_push($consist,"<li>".$_GET['consist5']."</li>");} else { unset($_GET['consist5']);} if(!empty($_GET['consist6'])){array_push($consist,"<li>".$_GET['consist6']."</li>");} else { unset($_GET['consist6']);} не суть. Я хочу, чтобы все значения этого массива занеслись в таблицу в БД. Мой код PHP: $sql = "INSERT INTO `articles` (`consist_of`) VALUES ('$consist')"; mysql_query($sql,$db)or die("Ошибка при добавлении новой статьи - ".mysql_error());} добавляет в таблицу значение ARRAY и всё.. Помогите, как мне это сделать?
PHP: $arr = array("1", "2", "3"); foreach ($arr as $value) { mysqli_query($db. "INSERT INTO `table` (`consist_of`) VALUES('$value')"); } --- Добавлено --- Я, как вы видите, использую конструкцию mysqli_query, а не mysql_query. Она более совершенная, и в последних версиях php mysql_... не работает. Так что используйте mysqli_... Для этого, естественно нужно и подключение соответствующее сделать.
Вы помогли, спасибо, но результат вышел не такой как я хотел. Он заносит каждое значение массива в новую строку! А мне нужно, чтобы все значения оказались в одной строке графы.
Тогда сначала сериализуйте массив в тот же JSON через json_encode. Полученную строку пишите в базу. Одним запросом отделаетесь. Потом, когда надо, читаете из базы эту строку, прогоняете через json_decode, получаете обратно массив. Вуаля! --- Добавлено --- Только сначала почитайте документацию по этим функциям, чтобы правильно выставить флаги. Ну там, чтобы кириллица не конвертилась(это не смертельно, но всегда приятно, когда данные в базе удобочитаемы), чтобы при обратной сборке получался массив, а не объект и все такое. Это довольно просто, вы справитесь. Просто надо прочитать.
И чем же оно не помогло? Implode генерит строку из массива, но использовать его вместо сериализатора не совсем правильно. PHP: <?php $array = array("1" => "PHP code tester Sandbox Online", "foo" => "bar", 5 , 5 => 89009, "case" => "Random Stuff: " . rand(100,999), "PHP Version" => phpversion() ); $string = json_encode($array); echo($string); //{"1":"PHP code tester Sandbox Online","foo":"bar","2":5,"5":89009,"case":"Random Stuff: 625","PHP Version":"7.1.0"} Все работает как надо. Получается строковое представление, которое может быть легко декодировано обратно в массив.