2017-01-25 4 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); 
관련 문제