Как вставить в таблицу SQL значения из var_char ($ _ POST) и выпадающие списки, сделанные с помощью цикла for?

0

Как упоминалось выше в названии, я хочу сохранить данные из 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 
} 
?>
Теги:

1 ответ

0

Вы должны запустить свой запрос вместо сохранения запроса в переменной как строку.

Во-первых, вам необходимо установить соединение с базой данных:

/** 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.

Подробнее о подготовленном заявлении вы можете прочитать здесь.

  • 0
    Спасибо за ответ. У меня есть все переменные, кроме $ morningId, $ morningId и $ вечеромId. Я получаю их из второй части кода через выпадающие списки внутри цикла for. Мой вопрос заключается в том, что делать, чтобы сохранить все выпадающие списки, если $ правильные дни равны 3 (и тогда, конечно, выпадающие списки будут составлять 9 3 за каждый день).
  • 0
    @StavrosS Вам удалось заставить мой ответ (запрос INSERT) работать?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню