Оптимизация запроса в PHP - PullRequest
       7

Оптимизация запроса в PHP

0 голосов
/ 16 апреля 2020

У меня, вероятно, простая проблема, но я новичок ie в PHP

У меня есть кнопка выбора:

<select name="ads_plan[]">
    <option value="">Choose plan</option>
    <option value="Free">Free</option>
    <option value="Basic">Basic</option>
    <option value="Premium">Premium</option>
    <option value="Delux">Delux</option>
</select>

И я хватаюсь за это PHP код:

<?php
$ads_plan = $_POST['ads_plan'];

foreach ($ads_plan as $item) {
    if ($item == 'Free') {
        echo 'Free';
    }

    elseif ($item == 'Basic') {
        echo 'Basic';
    }

    // etc
?>

Теперь я хочу добавить выбранное значение в запрос. И я сделал это следующим образом:

ОБНОВЛЕНО Также обратите внимание, что у меня есть метод choosePlan(), где каждый план собирает свою дату и добавляет спецификацию c номер дня в столбце ads_end_date. Например, если пользователь выберет Премиум-план, метод добавит 7 дней к текущей дате и в этот день удалит эту строку из базы данных. $function->choosePlan(7, 'Premium')

<?php
foreach ($ads_plan as $item) {
    $users_id = $_SESSION['id'];

    if ($item == 'Free')
         $add_free_ads = $db->query("INSERT INTO users_ads (user_id, ads_name, ads_description, ads_category, ads_image, ads_price, ads_location, ads_phone, ads_plan, ads_end_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $users_id, $ads_name, $ads_description, $ads_category, $ads_image, $ads_price, $ads_location, $ads_phone, $ads_plan, $function->choosePlan(3, 'Free'));

    elseif ($item == 'Basic')
         $add_basic_ads = $db->query("INSERT INTO users_ads (user_id, ads_name, ads_description, ads_category, ads_image, ads_price, ads_location, ads_phone, ads_plan, ads_end_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $users_id, $ads_name, $ads_description, $ads_category, $ads_image, $ads_price, $ads_location, $ads_phone, $ads_plan, $function->choosePlan(5, 'Basic'));

    elseif ($item == 'Premium')
        $add_premium_ads = $db->query("INSERT INTO users_ads (user_id, ads_name, ads_description, ads_category, ads_image, ads_price, ads_location, ads_phone, ads_plan, ads_end_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $users_id, $ads_name, $ads_description, $ads_category, $ads_image, $ads_price, $ads_location, $ads_phone, $ads_plan, $function->choosePlan(7, 'Premium'));

    else
        $add_delux_ads = $db->query("INSERT INTO users_ads (user_id, ads_name, ads_description, ads_category, ads_image, ads_price, ads_location, ads_phone, ads_plan, ads_end_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", $users_id, $ads_name, $ads_description, $ads_category, $ads_image, $ads_price, $ads_location, $ads_phone, $ads_plan, $function->choosePlan(10, 'Delux'));
}
?>

Это выше работает, но я знаю, что это не правильный подход. Поэтому мой вопрос заключается в том, как я могу оптимизировать весь этот код. Есть ли способ, как я могу сделать это только с одним запросом?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...