Как отобразить конкретный ряд данных на основе значения выпадающего меню? - PullRequest
0 голосов
/ 01 декабря 2018

Как сказал заголовок, я хочу отобразить конкретную строку данных, основанную на выборе пользователя года.

Если пользователь выбрал 2017, я хочу отображать только те строки данных, которые созданы в 2017 году.

Я знаю, что с моим запросом что-то не так, я пытаюсь понять, какмогу ли я написать запрос.Кто-нибудь может мне помочь, пожалуйста!Заранее спасибо!

<form action="Report1.php" method="POST">
    Select Year:<select name="sortyear" id="sortyear">
        <option>2017</option>
        <option>2018</option>
    </select>
    <?php
        $sortyear = $_POST['sortyear'];
        $db = mysqli_connect('localhost','root','','customercaremodule');
        date_default_timezone_set('Asia/Kuala_Lumpur');
        if ($db->connect_error) {
            die("Connection failed: " . $db->connect_error);
        }
        $sql = "SELECT first_name, last_name, email, message, FC_DateTime FROM fbcomplain WHERE (YEAR(FC_DateTime) = $sortyear)";
        $result = mysqli_query($db,$sql);
    ?>
</form>

Ответы [ 3 ]

0 голосов
/ 01 декабря 2018

Мне удалось решить эту проблему, добавив кнопку

<input type ="submit" name="search" class="btn btn-sm btn-primary" value="Filter" style="background-color: #474747;padding: 5px 5px !important;margin-bottom:5px;">

и закодировав php таким образом

        if(isset($_POST['search']))
        {

                      $db = mysqli_connect('localhost','root','','customercaremodule');
                      date_default_timezone_set('Asia/Kuala_Lumpur');
                      if ($db->connect_error) {
                          die("Connection failed: " . $db->connect_error);
                      }
            $sortyear = $_POST['sortyear'];
        $sql = "SELECT first_name, last_name, email, message, FC_DateTime FROM fbcomplain WHERE (YEAR(FC_DateTime) = $sortyear)";
        $result = mysqli_query($db,$sql);
        }
0 голосов
/ 01 декабря 2018

Вы можете попробовать это:

<form action="Report1.php" method="POST">
    Select Year:<select name="sortyear" id="sortyear">
        <option>2017</option>
        <option>2018</option>
    </select>
    <input type="submit" name="submit" value="Get Annual Data" />
    <?php
        if(isset($_POST['submit'])){
            $sortyear = $_POST['sortyear'];
            $db = mysqli_connect('localhost','root','','customercaremodule');
            date_default_timezone_set('Asia/Kuala_Lumpur');
            if ($db->connect_error) {
                die("Connection failed: " . $db->connect_error);
            }
            $sql = "SELECT first_name, last_name, email, message, FC_DateTime FROM fbcomplain WHERE (YEAR(FC_DateTime) = " .$sortyear .")";
            $result = mysqli_query($db,$sql);
        }
    ?>
</form>

Обратите внимание, что это в основном ваш код, я просто изменил его в соответствии с этим artcile .Ключевым моментом является кнопка «Я добавил», которая позволяет пользователю отправить форму.

0 голосов
/ 01 декабря 2018

Игнорируя недостатки безопасности, вы можете сделать следующее:

<?php $getYears = sqlquery() ?>
<form action="Report1.php" method="POST">
<select name="sortyear" id="sortyear">
 <?php for ($i = 0; $i < $getYears.length; $i++): ?>
 <option value="<?php echo $getYears[$i];?>"><?php echo $getYears[$i];?></option>
 <?php endif; ?>
</select>

Вы можете сделать

<?php for () {
}?>

, но for: позволяет вам вернуться к HTML-коду и получить ваш синтаксисподсветка;)

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