2015-02-23 3 views
0

У меня есть код, который имеет выпадение месяцев, и когда он выбран, данные этого конкретного месяца показывают. Например:Есть ли более подходящий подход к фильтрации из SQL?

<div style="width:700px;margin-left:auto;margin-right:auto;text-align:center;"> 
<h2>List of sessions</h2> 
    <select name = "Select"> 
     <option value="jan" onclick="showDiv('j')">January</option> 
     <option value="feb" onclick="showDiv('f')">February</option> 
     <option value="mar" onclick="showDiv('m')">March</option> 
     <option value="apr" onclick="showDiv('a')">April</option> 
     <option value="may" onclick="showDiv('m')">May</option> 
    </select> &nbsp; 



    </div> 
<div class="content" id="f"> 

     <?php $sql = DB::getInstance()->get('sessions', array('MONTH(date)','=' ,'2')); 
//mysql_db_query('nio', "SELECT DATE"); 
     echo "<table class='table table-hover'style='color: orange' > " 
          . "<thead> 
     <tr> 
     <th>Title</th> 
     <th>Date</th> 
     <th>Start Time</th> 
     <th>End Time</th> 
     </tr> 
     </thead> 
    <tbody>"; 
       if(!$sql->count()){ 
        echo 'No data'; 
       }else { 
        foreach ($sql->results() as $sql){ 
         echo "<tr style='background-color: black'>"; 
         echo "<td>" . $sql->title . "</td>"; 
         echo "<td>" . $sql->date . "</td>"; 
         echo "<td>" . $sql->start_time . "</td>"; 
         echo "<td>" . $sql->end_time . "</td>"; 
         echo "</tr>"; 
         ?> 
       <?php }}echo" </tbody>"; 
echo" </table>";?> 
</div> 

Разместил (а), чтобы отобразить данные только для февраля. Я должен иметь на каждый месяц, что означает, что если я последую этому пути, я повторю вышеуказанный div примерно 11 раз. Есть ли лучший способ сделать это?

ответ

0

Смотрите, если это поможет вам:

<div style="width:700px;margin-left:auto;margin-right:auto;text-align:center;"> 
    <h2>List of sessions</h2> 

    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post"> 
     <select name="Select" onchange="this.form.submit()"> 
      <option value="">-- SELECT --</option> 
      <option value="1">January</option> 
      <option value="2">February</option> 
      <option value="3">March</option> 
      <option value="4">April</option> 
      <option value="5">May</option> 
     </select> 
    </form> 
</div> 

<?php 

// Here you get user selection 
// Eg. 
if(isset($_POST['Select']) && !empty($_POST['Select'])){ 

    $userSelection = (int) $_POST['Select']; 

    // Imagine user selection is 1 
    // Make query and cosntruct table here 
}  

?> 
+0

Я думаю, что может быть что-то отсутствует. Я попробовал свой код и сделал запрос, как я сделал выше, но когда вы выбираете какой-либо месяц, он все равно показывает то же самое. – Love

+0

Я заметил свою ошибку. Большое спасибо, это действительно помогло. – Love

+0

Рад помочь вам :) – lmarcelocc

Смежные вопросы