Как вставить 3 массива в 2 таблицы MySql? - PullRequest
0 голосов
/ 10 июня 2011

У меня есть 3 простых массива с одинаковым количеством элементов

$id= array(1, 2, 3, 4, 5);
$fruit= array('apple', 'banana', 'ananas', 'orange', 'lemon');
$price= array(32, 54, 26, 97, 47);

У меня есть две таблицы MySql.Первая таблица 'fruits' содержит строки 'id' и 'name', а вторая таблица 'values' содержит строки 'fruit' и 'price'.

В таблицу 'fruits' мне нужно вставить элементы из массивов$ id и $ fruit.Элементы из $ id должны помещаться в строку 'id', а элементы из $ fruit должны помещаться в строку 'name', ЕСЛИ нет строки с таким же номером идентификатора.Также мне нужно вставить все элементы из массивов $ id и $ price в таблицу 'цен'.Как и в предыдущей таблице, элементы из массива $ id должны быть помещены в строку 'fruit', а элементы из массива $ price - в строку 'price'.

Спасибо за помощь.

Ответы [ 2 ]

6 голосов
/ 10 июня 2011
$id= array(1, 2, 3, 4, 5);
$fruit= array('apple', 'banana', 'ananas', 'orange', 'lemon');
$price= array(32, 54, 26, 97, 47);


foreach($fruit as $key => $fruitName)
    {
    $query = '
        INSERT INTO fruits (id, name)
        VALUES ('.$id[$key].', '.$fruit[$key].')
        ';
    // execute
    $query = '
        INSERT INTO prices (id, price)
        VALUES ('.$id[$key].', '.$price[$key].')
        ';
    // execute
    }

Но, пожалуйста, не просите меня проверить ввод [наличие ключей и т. Д.] Здесь - это быстрый фрагмент, который, вероятно, поможет.;]

Кстати.Было бы намного лучше, если бы у вас был один стол фруктов (идентификатор, имя, цена).;]

1 голос
/ 10 июня 2011

Используйте array_combine() для создания двух новых массивов:

  • один объединяется $id с $fruit
  • один объединяется $id с $price

Переберите каждый из этих двух ассоциативных массивов и вставьте свои записи.

...