2015-12-03 1 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

использовать его как '$ ц [$ я]' – 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']); 
Смежные вопросы