2015-12-03 47 views
0

試圖設置一個複選框,當我檢查多個時間槽的時間表我想要檢查的時間插入到我的表中。插入'數組'而不是數值到數據庫的查詢

我在我的數據庫中設置了一個時區作爲枚舉,所以這只是以複選框的形式顯示所有時間。

echo "<table>"; 
 
echo "<tr>"; \t \t \t \t 
 
    echo("<td><input type=checkbox name=time_slot[] value='$option'>$option</td>"); 
 
echo "</tr>"; 
 
echo "</table>";

此代碼應該與所有相同的信息欄時隙插入每個選中的項目到數據庫中。

if(isset($_POST['submit'])) 
 
{ 
 
    $ts = $_POST['time_slot']; 
 
    $db = new PDO ("mysql:host=localhost; dbname=zzzzz", "zzzzz", "12345"); 
 
    for ($i=0; $i<sizeof($ts);$i++) 
 
    { 
 
    $query = "INSERT INTO timeslot (date, duration, firstName, lastName) VALUES ('".$_POST['year']."-".$_POST['month']."-".$_POST['day']."', '$ts', '".$_SESSION['firstName']."', '".$_SESSION['lastName']."')"; 
 
\t $state = $db->prepare($query); 
 
\t $state->execute(); 
 
\t print_r($state); 
 
    } 
 
\t print_r($ts);
每個循環爲 print_r($state)輸出 INSERT INTO timeslot (date, duration, firstName, lastName) VALUES ('2020-04-20', 'Array','John', 'Doe')

print_r($ts)輸出的一切,我已經檢查Array ([0] => 4:20-4:40 PM [1] => 4:40-5:00 PM [2] => 5:00-5:20 PM)

我怎樣才能解決這個問題的時隙?謝謝。

+1

使用它像'$ TS [$ i]' – Saty

+0

@Saty謝謝! – ph0bolus

回答

2

如果您正在循環$ ts,則可能需要使用$ i獲取每個循環上該索引處的值。 '" . $ts[$i] . "'

$query = "INSERT INTO timeslot (date, duration, firstName, lastName) VALUES ('".$_POST['year']."-".$_POST['month']."-".$_POST['day']."', '" . $ts[$i] . "', '".$_SESSION['firstName']."', '".$_SESSION['lastName']."')"; 
+0

不能相信我忽略了那些簡單的東西,非常感謝你! – ph0bolus

0

使用時隙如下得到它以逗號分隔值:

$ts = implode(",",$_POST['time_slot']);