2016-03-29 7 views
-1

Vielen Dank im Voraus für jegliche Hilfe! Ich bin sehr neu in PHP und würde etwas Rat/Hilfe lieben! Ich möchte, dass viele durch Komma getrennte ID-Felder getrennt mit derselben Ressourcen-ID-Variablen in eine Datenbank eingegeben werden.Hinzufügen von mehreren durch Komma getrennten Feldern in die Datenbank 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); 
} 

Ich denke, es ist so etwas wie dieser Code oben sein könnte, aber es tut mir scheint zu funktionieren ... Kurz gesagt mag ich einen Benutzer viele ID-Felder eingeben und nur eine Ressource Feld, und damit separat in die Datenbank eingegeben werden. Ich hoffe das macht Sinn! Nochmals vielen Dank für die Hilfe!

Antwort

0

Sie haben nach dieser Zeile nicht Semikolon und Sie musnt't einen Raum zwischen $ id und [$ x] haben

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

Sie wäre besser dran, eine separate Tabelle zu schaffen, die eine neue Zeile hat Für jeden Datensatz ... wären die Spalten ID, NINJA_ID, RESOURCE_ID. Dann füge es so ein. Setzen Sie einen Index auf RESOURCE_ID. Auf diese Weise können Sie einfach durch die Datenbank nach bestimmten Datensätzen suchen, das Aktualisieren und Löschen wäre ebenfalls viel einfacher.

Aber wenn Sie darauf bestehen, tun Kommata,

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

1

Um nur Ihre Frage beantworten und nicht Ihre Datenbank-Schema in Frage zu stellen. Werfen Sie einen Blick auf den folgenden Code:

$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) . ";"; 

Sie können mit einem Komma von seperating sie mehrere Zeilen in einer SQL-Abfrage einfügen. Der Code sollte eine Abfrage wie folgt generieren:

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