2017-01-25 10 views
-1

ここには4つの項目の配列があります。私のPHPスクリプトは、各配列項目を反復処理し、データベースに挿入する必要があります。今はデータベースにすべての値を挿入できません。最後の配列項目のレコードのみを追加しています。どうやってやるの?各配列項目を反復処理してデータベースに挿入する方法

は、ここで私がやっていることだ。

$project_id = $_GET["pid"]; 
$today = date('Y-m-d'); 
$session_array = array("session-1","session-2","session-3","session-4"); 

$conn = mysqli_connect($servername, $username, $password, $dbname); 

if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

foreach ($session_array as $sesname) { 
    $session_name = $sesname; 
    $sql = "INSERT INTO project_sessions (session_date,session_name,project_id) VALUES ('$today','$session_name',$project_id)"; 
} 

if (mysqli_query($conn, $sql)) { 
     header("Location: show-project.php?id=$project_id"); 
} else { 
     echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 
mysqli_close($conn); 
+3

移動 'mysqli_query($のCONN、$ sqlを)' 'foreach'で、それは単純ではないのですか? –

+0

@u_mulderありがとうございました!出来た –

答えて

0

プットMySQLのmysqli_query($ CONN、$ sqlを)ループ内。

$project_id = $_GET["pid"]; 
$today = date('Y-m-d'); 
$session_array = array("session-1","session-2","session-3","session-4"); 

$conn = mysqli_connect($servername, $username, $password, $dbname); 

if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 
$error = 0; 
foreach ($session_array as $sesname) { 
    $session_name = $sesname; 
    $sql = "INSERT INTO project_sessions (session_date,session_name,project_id) VALUES ('$today','$session_name',$project_id)"; 
    if (!mysqli_query($conn, $sql)) { 
     $error = 1; 
     $error_sql = $sql; 
    } 
} 

if (!$error) { 
    header("Location: show-project.php?id=$project_id"); 
} else { 
    echo "Error: " . $error_sql . "<br>" . mysqli_error($conn); 
} 
mysqli_close($conn); 
0

この、より効率的な方法を試してみてください...

$project_id = $_GET["pid"]; 
$today = date('Y-m-d'); 
$session_array = array("session-1","session-2","session-3","session-4"); 

$conn = mysqli_connect($servername, $username, $password, $dbname); 

if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "INSERT INTO project_sessions (session_date,session_name,project_id) VALUES"; 

$startLoop = false; 
foreach ($session_array as $sesname) { 
    $session_name = $sesname; 
    $sql .= ($startLoop)?',':''; 
    $sql .= "('$today','$session_name',$project_id)"; 
    $startLoop = true; 
} 

if($startLoop){ 
    if (mysqli_query($conn, $sql)) { 
      header("Location: show-project.php?id=$project_id"); 
    } else { 
      echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
    } 
} 
mysqli_close($conn); 
関連する問題