2016-03-29 21 views
-1

Verilen yardımlardan şimdiden teşekkür ederiz! Ben PHP için çok yeni ve bazı tavsiye/yardım isterim! Virgülle ayrılmış birçok kimlik alanının aynı kaynak kimliği değişkeniyle ayrı ayrı bir veritabanına girilmesini istiyorum.Veritabanına virgülle ayrılmış birden fazla alan eklemek PHP

Find a link to a picture here! Here, a user enters many ids for the name, and only one ID for the resource, I would like all ids to be entered into the database with the same resource id beside it

//so this is creating the array to split up the ids 
$array = explode(",", $id); 
//finding length of array 
$length = count($array); 
//now we want to loop through this array, and pass in each variable to the db 
for ($x = 0; $x < $length; $x++) { 
$sqlinsert= "INSERT INTO ids_to_resources (id, resource_id) 
    VALUES ($id [$x], $resource_id)" 

    $result = mysqli_query($dbcon,$sqlinsert); 
} 

Ben yukarıda bu kod gibi bir şey olabileceğini düşünüyorum ama benim için çalışıyor gibi görünmüyor ... Kısacası i kullanıcı birçok Kimliği alanlarını ve yalnızca bir kaynak girmek istiyorum alan ve bunun ayrı olarak veritabanına girilmesi. Umarım bu mantıklı gelir! Verilen yardımlar için tekrar teşekkürler!

cevap

0

Bu satırdan sonra noktalı virgülle sahip olmayan ve $ id ve [$ x] arasında bir boşluk musnt't

$sqlinsert= "INSERT INTO ids_to_resources (id, resource_id) 
VALUES ($id[$x], $resource_id)"; 
0

Sen yeni bir satır vardır, ayrı bir tablo oluşturarak daha iyi olurdu Her kayıt için ... sütunlar ID, NINJA_ID, RESOURCE_ID olur. Sonra bu şekilde yerleştirin. RESOURCE_ID'ye bir dizin koyun. Bu şekilde belirli kayıtlar için veritabanında kolayca arama yapabilirsiniz, güncelleme ve silme işlemi de çok daha kolay olacaktır.

Ama yaptığını virgül ısrar,

$comma_ids = implode("," $array);

1

için sadece sorunuzu cevaplamak ve veritabanı şemasını sorgulamıyorum.

$ids = explode(",", $id); 
$inserts = array(); 
foreach ($ids as $id) { 
    $inserts[] = "($id,$resource_id)"; 
} 
$query = "INSERT INTO ids_to_resources (id,resource_id) VALUES " . implode(',', $inserts) . ";"; 

Bir virgül ile ayırarak bir sql sorgusunda birden fazla satır ekleyebilirsiniz: Bir aşağıdaki koda bakın. Kod şu şekilde bir sorgu oluşturmalıdır:

INSERT INTO ids_to_resources (id,resource_id) VALUES (1,4),(2,4),(3,4); 
İlgili konular