Bir online kayıt sırasında, bir müşteri onlar için kayıt seçebilirsiniz bir dizi program seçebilirsiniz. Bu programlar, üç basamaklı bir tamsayı ve bir dizi saklanır.
Örneğin:
Ben programid 155, 165, 175, ve 185 kayıt istiyorum.
: Benim dizisi kurmak gibi basit
$data = array();
$data[] = 155;
$data[] = 165;
$data[] = 175;
$data[] = 185;
Bu ilişkili tabloya bu bilgileri eklemek için zamanı geldiğinde, ben de okullaşma diğer kısmından ek unsurları içerir:
Ben tek bir program ekleme deyimini yapıyor olsaydı aşağıdaki gibi Örneğin, görüneceğini:
$stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
$stmt->execute(array($memberid, 155));
Ben normalde sql deyimi birden çok örneğini arayıp gibi yürütmek hangi yukarıdaki dizi için basit bir döngü yaratacak:
for($j = 0; $j < (count($data)-1); $j++) {
$stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
$stmt->execute(array($memberid, $data[$j]));
}
Yukarıdaki kod ($ veri [$ j]) geçersiz farkında ama çağrıyı yapmak için doğru yolu arıyor yok.
Ben de o binaya daha önce tek bir dinamik sql deyimi yukarıdaki gibi birden aramaların daha genel olarak iyidir söylendi. Benim ilk geçiş gibi bir şey olurdu:
$sql = array();
foreach( $data as $row ) {
$sql[] = '("'.$memberid.'", "'.$row[$j].'", NOW()")';
}
mysql_real_query('INSERT INTO table (memberid, programid) VALUES '.implode(',', $sql));
ama PDO ile özellikle tutucular ile, bu nasıl çalıştığını oldukça emin değilim (?).
Herhangi bir öneriniz?