Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите с foreach массива и mysql
 
 автор: Oleg77   (26.06.2015 в 15:41)   письмо автору
 
 

Добрый день!
Есть многомерный массив:

$data = array(

    0 => array(

        "email" => "Значение1",

        "addres" => "Значение1",
        
        "first_name" => "Значение1",

        "last_name" => "Значение1"

    ),

    1 => array(

        "email" => "Значение2",

        "addres" => "Значение2",
        
       "first_name" => "Значение2",

        "last_name" => "Значение2"

    ),
    
    2 => array(

        "email" => "Значение3",

        "addres" => "Значение3",
        
        first_name" => "Значение3",

        "last_name" => "Значение3"

    ),
);


Не подскажете как на PHP с помощью foreach вставить его в таблицу TABLE в поля: email, addres, first_name, last_name
Поле id - с автоинкрементом.

С уважением,
Олег

  Ответить  
 
 автор: Igorek   (26.06.2015 в 19:16)   письмо автору
 
   для: Oleg77   (26.06.2015 в 15:41)
 

<?php
$data 
= array(
    array(
        
"email"      => "Значение1",
        
"addres"     => "Значение1",
        
"first_name" => "Значение1",
        
"last_name"  => "Значение1"
    
),
    array(
        
"email"      => "Значение2",
        
"addres"     => "Значение2",
        
"first_name" => "Значение2  ",
        
"last_name"  => "Значение2"
    
),
    array(
        
"email"  => "Значение3",
        
"addres" => "Значение3",
        
"first_name" => "Значение3",
        
"last_name" => "Значение3"
    
),
);

$sql "INSERT INTO `TABLE`(email, addres, first_name, last_name) VALUES ";
$datas = [];
foreach (
$data as $values) {
    
$values array_map(function($v) {return "'".mysql_real_escape_string(trim($v))."'";}, $values);
    
$datas[] = '(' implode(','$values) . ')';
}
$sql .= implode(','$datas);

// execute $sql here

  Ответить  
 
 автор: Oleg77   (03.07.2015 в 23:52)   письмо автору
 
   для: Igorek   (26.06.2015 в 19:16)
 

Спасибо.

  Ответить  
 
 автор: confirm   (09.07.2015 в 23:37)   письмо автору
 
   для: Oleg77   (26.06.2015 в 15:41)
 

<?
$sql 
'INSERT INTO tablename (`'.implode('`,`'array_keys($data[0])).'`) VALUES (' implode('),('array_map(function($v) {
    return 
'"' implode('","'array_map('mysql_real_escape_string'array_map('trim'$v))) . '"';
}, 
$data)) . ')';

  Ответить  
 
 автор: Oleg77   (08.10.2015 в 11:52)   письмо автору
 
   для: confirm   (09.07.2015 в 23:37)
 

Спасибо.

А не подскажете как это можно использовать для UPDATE?
(т.е. есть массив с данными и ими надо обновить таблицу)

С уважением,
Олег

  Ответить  
 
 автор: confirm   (08.10.2015 в 12:45)   письмо автору
 
   для: Oleg77   (08.10.2015 в 11:52)
 

Для UPDATE непосредственно также написать запрос нельзя, но есть INSERT с ON DUPLICATE KEY UPDATE. Сперва найдите в сети и почитайте что это такое, а также иметь ввиду это.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования