2014-10-08 2 views
-3

У меня есть мульти массивы:Вставьте мульти массивы в базе

массива (

[1] => Array 
    (
     [0] => http://213b572-ba681bf9cc9e 
     [1] => http://f057-4139-ac40-bc4449722ffc 
     [2] => http://b-c151-4ba1-b7b7-842771c36d6b 
     [3] => http://5a77fb-8fce-4793-868f-c9fd73524037 
    ) 

[2] => Array 
    (
     [0] => http://8-d832-4b34-a55b-da04ad8cdd09 
     [1] => http://b38-6a60-4233-b207-f40fae2ef431 
     [2] => http://3-f31c-49c4-87ee-fcada05a105f 
     [3] => http://07514-e438-45e2-906e-b440cbcbf8dc 
    ) 

...... 

[76] => Array 
    (
     [0] => http://8-d832-4b34-a55b-da04ad8cdd09 
     [1] => http://b38-6a60-4233-b207-f40fae2ef431 
     [2] => http://3-f31c-49c4-87ee-fcada05a105f 
     [3] => http://07514-e438-45e2-906e-b440cbcbf8dc 
    ) 

Я хочу, чтобы моя база данных являются:

  | id | id_page | url | 

      | 1 | 1  | http://jjjjjjjjj | 

      | 2 | 1  | http://jjjjjjjjj| 

      ...... 

      | 1000 | 76  | http://jjjjjjjjj| 

Я использую:

foreach ($hrefs as $key => $href) { 
    mysqli_query($con, "INSERT INTO urls(`id`, `id_page`, `url`) VALUES ('', '$key', '$href')"); 
} 

Но не работает.

@: Александр Mochalygin

mysqli_connect.php

`$con = mysqli_connect("localhost", "root", "", "vlbd"); 
mysqli_query($con, "set names 'utf8'"); 
//Check connection 
if(mysqli_connect_errno()) { 
echo "Failed to connect to MySQL:" . mysqli_connect_error(); 
}` 

Функция запроса:

function insertUrlsToDb() { 
global $con; 

$pages = getPagesFromDb(); // pages array to database (limit 4 pages) 
$hrefs = getHrefByPages($pages); // hrefs multidimentions array 

foreach ($hrefs as $href) { 
    foreach ($href as $key => $value) { 
     mysqli_query($con, "INSERT INTO urls(`id`, `id_page`, `url`) 
        VALUES ('', '$key', '$value')"); 
    } 
} 
mysqli_close($con); 
}` 

$ страинц массив в базу данных (ограничение 4 страницы) $ hrefs является multidimentions массив как выше.

+0

Вы посмотрели [ошибки] (http://php.net/manual/en/mysqli.error.php)? – Marty

ответ

1

У вас есть 2 массив уровня, так что вам нужно использовать foreach дважды:

foreach ($hrefs as $idPage => $arrayHrefs) { 
    foreach ($arrayHrefs as $href) { 
     mysqli_query($con, "INSERT INTO urls(id,id_page,url) VALUES ('', '$idPage', '$href')"); 
    } 
} 
+0

Это должно решить проблему! –

+0

Я следую за вами и получаю ошибки: ** Не удалось получить mysqli в файле.php в строке 159 **. Мой код: 'Еогеасп ($ hrefs как $ HREF) { \t \t Еогеасп ($ HREF, как $ ключ => $ значение) { \t \t \t mysqli_query ($ жулик,«INSERT INTO ссылок ('id',' id_page' , 'url') \t \t \t \t \t \t VALUES ('', '$ key', '$ value')"); \t \t} ' – TriMinh

+0

Показать весь код, pls. Кажется, что у вас есть ошибка во время вашего соединения mysqli. – mochalygin

0

Хорошо, я использую цикл:

foreach ($hrefs as $key => $value) { 
    foreach($value as $key1 => $value1) { 
     $sql = "INSERT INTO urls(`id`, `id_page`, `url`) 
          VALUES('', '$key', '$value1')"; 
     mysqli_query($con, $sql) or die(mysqli_error()); 
    } 
} 

проблема решена. Спасибо вам!

+0

ok, теперь вы можете принять мой ответ – mochalygin

Смежные вопросы