powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Два цикла в один INSERT
11 сообщений из 11, страница 1 из 1
[PHP] Два цикла в один INSERT
    #37999546
De Cod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть БД MySQL, в которую хочу занести данные, проблема в том, что данные должны поступать из двух циклов типа:

В БД поле TITLE и CONTENT идут в одной таблице,в одной линии , хочу записать их сразу в одном поле, как объеденить два цикла?


Код: php
1.
2.
3.
4.
5.
//Первый цикл
foreach ($arr as $key => $value) {
$query = "INSERT INTO db_name (TITLE)   VALUES ('$value')";
mysql_query ( $query );
}";



Код: php
1.
2.
3.
4.
5.
//Второй цикл
foreach ($arr as $key => $value) {
$query = "INSERT INTO db_name (CONTENT)   VALUES ('$value')";
mysql_query ( $query );
}";




Как сделать так:
.............
Код: php
1.
$query = "INSERT INTO db_name (TITLE, CONTENT)   VALUES ('$value1', '$value2')";


.................

?
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #37999563
Bednii_Student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
De CodЕсть БД MySQL, в которую хочу занести данные, проблема в том, что данные должны поступать из двух циклов типа:

В БД поле TITLE и CONTENT идут в одной таблице,в одной линии , хочу записать их сразу в одном поле, как объеденить два цикла?


Код: php
1.
2.
3.
4.
5.
//Первый цикл
foreach ($arr as $key => $value) {
$query = "INSERT INTO db_name (TITLE)   VALUES ('$value')";
mysql_query ( $query );
}";



Код: php
1.
2.
3.
4.
5.
//Второй цикл
foreach ($arr as $key => $value) {
$query = "INSERT INTO db_name (CONTENT)   VALUES ('$value')";
mysql_query ( $query );
}";




Как сделать так:
.............
Код: php
1.
$query = "INSERT INTO db_name (TITLE, CONTENT)   VALUES ('$value1', '$value2')";


.................

?

Код: php
1.
2.
3.
4.
5.
$content = $arr;
for($i=0; $i<count($arr); $i++){
$query = "INSERT INTO db_name (TITLE,CONTENT)   VALUES ('$value','$content[$i]')";
mysql_query ( $query );
}
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #37999568
De Cod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bednii_Student,

Пока не совсем понял, я наверно не совсем правильно написал, в обоих циклах работа идёт с разными массивами, то есть $arr1 и $arr2.
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #37999570
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
De Cod, все зависит от того как именно связаны данные эта два массива. В самом простом случае парные элементы идут в одном и том же порядке - (arr1[0], arr2[0]), (arr1[1], arr2[1]), ..., (arr1[N], arr2[N]). В более сложном у них будет одинаковый ключ. Тогда цикл foreach ($arr as $key => $value) легко превратить в обход двух массивов. Из твоего примера непонятно что из себя представляет каждый массив так что выбирай подходящий способ самостоятельно.
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #37999571
De Cod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

Данные циклы идут парно, как ты написал, $arr[1],$arr[2] и тд. В одном массиве идут href сслыки, в другом текст данной ссылки, но я пока не догоняю как их связать...
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #37999574
De Cod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$arr1[0] -$arr2[0]
$arr1[1] -$arr2[1]
....
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #37999577
De Cod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$mixarr= array_merge ($arr1, $arr2); -Это то?
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #37999591
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
De Cod, цикл for и функция count() помогут тебе.
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #37999625
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если поле TITLE уникальное
Код: php
1.
2.
3.
foreach(array_combine($arr1, $arr2) as $title => $content) {
mysql_query (sprintf("INSERT INTO db_name (TITLE, CONTENT)   VALUES ('%s','%s')", mysql_real_escape_string($title),mysql_real_escape_string($content)));
}
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #38000861
De Cod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РенатЕсли поле TITLE уникальное
Код: php
1.
2.
3.
foreach(array_combine($arr1, $arr2) as $title => $content) {
mysql_query (sprintf("INSERT INTO db_name (TITLE, CONTENT)   VALUES ('%s','%s')", mysql_real_escape_string($title),mysql_real_escape_string($content)));
}




Да, это то что надо!

Спасибо Ренат!
...
Рейтинг: 0 / 0
[PHP] Два цикла в один INSERT
    #38001284
De Cod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РенатЕсли поле TITLE уникальное
Код: php
1.
2.
3.
foreach(array_combine($arr1, $arr2) as $title => $content) {
mysql_query (sprintf("INSERT INTO db_name (TITLE, CONTENT)   VALUES ('%s','%s')", mysql_real_escape_string($title),mysql_real_escape_string($content)));
}



Но в таком варианте, только что заметил, не совсем корректно скрипт себя ведёт.. если массивы $arr1 и $arr2 имеют разное количество элементов, эти два массива формируются из двух разных preg_mathch_all функций, и выходит разница в количестве, не все ссылки имеют title или content, как уровнять два массива, перед array_combine?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Два цикла в один INSERT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]