Как упоминалось выше в названии, я хочу сохранить данные из var_char (_ $ POST) в таблице sql и данные из раскрывающегося списка в цикле for. Я использую это:
if (isset($_POST['submit']) && $_GET['action'] == 'schedule'){
$sdate = $_POST['start-date'];
$dateQ = "INSERT INTO schedule (schedule_id,user_email,date,morning,afternoon,evening) VALUES ('','$email','$sdate','$morningId','$afternoonId','$eveningId')";
if($dateQ) {
echo 'success';
}
else {
echo 'fail';
}
Хотя он и вернул успех, таблица по-прежнему пуста. Даже если я получу это правильно, как я могу вставить в значения таблицы из цикла for? как это:
<?php
for ($i = 1; $i <= $correctDays; $i++) {
?>
<div>
<hr>
<h2>Schedule for day <?php echo $i; ?></h2>
<hr>
</div>
<div>
<h3>Pick an activity from 09:00-14:00:</h3>
</div>
<div style="text-align:center;">
<select name="morning<?php echo $i; ?>" style="text-align:center;">
<?php
while ($row = mysqli_fetch_assoc($morningR)) {
echo '<option value="' . $row['id'] . '">' . $row['sightname']. '</option>';
}
mysqli_data_seek($morningR, 0);
?>
</select>
</div>
<div>
<h3>Pick an activity from 14:00-18:00:</h3>
</div>
<div style="text-align:center;">
<select name="afternoon<?php echo $i; ?>" style="text-align:center;">
<?php
while ($row = mysqli_fetch_assoc($afternoonR)) {
echo '<option value="' . $row['id'] . '">' . $row['sightname'] . '</option>';
}
mysqli_data_seek($afternoonR, 0);
?>
</select>
</div>
<div>
<h3>Pick an activity from 18:00-24:00:</h3>
</div>
<div style="text-align:center;">
<select name="evening<?php echo $i; ?>" style="text-align:center;">
<?php
while ($row = mysqli_fetch_assoc($eveningR)) {
echo '<option value="' . $row['id'] . '">' . $row['sightname'] . '</option>';
}
mysqli_data_seek($eveningR, 0);
?>
</select>
</div>
<?php
}
?>
Вы должны запустить свой запрос вместо сохранения запроса в переменной как строку.
Во-первых, вам необходимо установить соединение с базой данных:
/** REPLACE THE ARGUMENTS WITH PROPER VALUE BELOW **/
$con = new mysqli("YourHost", "Username", "Password", "DatabaseName");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
Затем вы можете запустить свой запрос:
if (isset($_POST['submit']) && $_GET['action'] == 'schedule'){
$sdate = $_POST['start-date'];
$stmt = $con->prepare("INSERT INTO schedule (user_email, date, morning, afternoon, evening) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("ssiii", $email, $sdate, $morningId, $afternoonId, $eveningId);
$stmt->execute();
$stmt->close();
}
Кстати, где вы получили другие переменные (например, $ email, $ morningId, $ secondId, $ eveningId)? Надеюсь, вы объявили их до вашего запроса INSERT.
Подробнее о подготовленном заявлении вы можете прочитать здесь.