PDO ile Çoklu INSERT İşlemi
Elimizde bulunan 2 dizi var. Bunlardan biri a dizisi olsun diğeri b dizisi.
a dizimizin içinde 3 eleman var. (A1,A2,A3)
b dizimizin içinde 2 eleman var. (B1,B2)
Bu elemanlar artabilir azalabilir.
Bu dizideki elemanları kullanarak INSERT işlemi yapmak. INSERT yapacağımız tablo örneği olarak;
ID | A | B
-------------
1 | A1 | B1
2 | A2 | B1
3 | A3 | B1
4 | A1 | B2
5 | A2 | B2
6 | A3 | B2
Şeklinde işlem yapmamız lazım. Yani elimizde bulunan elemanlarla her kombinasyonda eşleştirme yapmamız gerekiyor. Bir diğer örnekle gösterecek olsak;
a dizimizin içinde 2 eleman var. (C4,C5)
b dizimizin içinde 1 eleman var. (H9)
ID | C | H
-------------
1 | C4 | H9
2 | C5 | H9
Şeklinde bir INSERT işlemi yapmak istiyorum. Umarım anlatabilmişimdir, markdown editörünü de kullandıkça sevmeye başladım, ilk sorularım sorunluydu şimdi çözdüm editörü daha. :)
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (9)
Merhaba. Array lar de]i.kene e.itledikden sonra array_merge($arr1, $arr2) ile her iki arrayı bir değişkene aktarın sonra forreach ile döndürerek işlem yaptıra bilirsiniz. Dosyalarınıza paylaşırsanız link yoluyla editleyip size yollaya bilirim: Mail [email protected] tam olarak ne istediyinizide yazarsınız. (Email paylaşmak yasaksa lütfen yorum kaldırılsın)
$a_element = ['a','a1','a2','a3','a4','a5'];
$b_element = ['b','b1','b2','b3','b4','b5'];
$c_element = ['c','c1','c2','c3','c4','c5'];
$all = count($a_element); //toplamda kac tane update olajak sayisi $a_element id olabilir
for($i = 0; $i < $all; $i++){
/* this is demo
$result = $a_element[$i];
$result .= $b_element[$i];
$result .= $c_element[$i];
echo'<pre>';
print_r($result);
echo'</pre>';
*/
$statement = $db->prepare("INSERT INTO table_name (a_element, b_element, c_element,) VALUES ($a_element['$i'], $b_element['$i']), $c_element['$i'])");
$result = $statement->execute(
array(
':a_element' => $a_element['$i'],
':b_element' => $b_element['$i'],
':c_element' => $c_element['$i']
)
);
}
Meraba
$datafields = array('dbname', 'dbname2', ... );
$data[] = array('dbname' => 'value', 'dbname2' => 'value' ....);
$data[] = array('dbname' => 'value', 'dbname2' => 'value' ....);
insert into table (fielda, fieldb, ... ) values (?,?...), (?,?...)....
algoritm bu buni bi suru yolu var en oson yolu bu