0

我有一个表格,在我的页面上有一个排序选项。我正在使用从数据库中选择表的数据SELECTWHERE现在我知道您可以简单地在脚本中添加AND之后WHERE从表中提取更少的行。

我需要脚本最初从表中提取所有信息,然后如果用户使用按钮选择某个状态,则脚本会再次运行,并且只显示该特定状态的任务。

这是将排序的按钮:

<div class="btn-group"> 
     <button class="btn">All</button> 
 <button class="btn dropdown-toggle" data-toggle="dropdown"> 
    <span class="caret"></span>
 </button> 
 <ul class="dropdown-menu"> 
    <li><a href="#">All</a></li>
    <li><a href="#">In Progress</a></li>
    <li><a href="#">Done</a></li>
    <li class="divider"></li>
    <li><a href="#">New task</a></li>
    <li><a href="#">Overdue Task</a></li>
 </ul>
</div>

这是实际的表格脚本:

<?php
$con=mysqli_connect();
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM affiliate_tasks WHERE username = '$_SESSION[username]' ");

echo "<table class='table table-message'>
<tr class='heading'>
<td class='cell-title'>Tasks</td> 
<td class='cell-status hidden-phone hidden-tablet'>Status</td> 
<td class='cell-time align-right'>Due Date</td>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr class='task'>";
  echo "<td class='cell-ttle'>" . $row['task_name'] . "</td>";
  echo "<td class='cell-status hidden-phone hidden-tablet'>"  . $row['status'] . "</td>";
  echo "<td class='cell-time align-right'>" . $row['due_date'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysqli_close($con);
?>

我在想我们需要在这条线上添加一些东西,但我不确定。

$result = mysqli_query($con,"SELECT * FROM affiliate_tasks WHERE username = '$_SESSION[username]' ");

这是javascript的工作吗?还是我们可以添加到 php 脚本中?

如果我们做这样的事情而不是按钮怎么办:

<select id="sort-selection" class="btn"> 
 <option value="all">All</option>
 <option value="pending">Pending</option>
 <option value="in_progress">In Progress</option> 
 <option value="done">Done</option>
</select>
4

2 回答 2

1

它只是伪代码,因为您的按钮不是表单的一部分,并且您的代码中没有$_POST,并且没有信息(在您的代码中)在查询中添加什么AND(column_name = value)

$query = "SELECT * FROM affiliate_tasks WHERE username = '$_SESSION[username]'";

if( isset($_POST['sort-selection'] && $_POST['sort-selection'] != 'all' ) ) {
     $query .= " AND status = '". $_POST['sort-selection']."';" ;
}

$result = mysqli_query($con, $query);
于 2013-06-05T02:16:20.820 回答
0

我会使用 Javascript 来做到这一点,但是当你在 PHP 中形成它们时,你必须标记你的行,可能通过为每一行添加一个类来指示它正在显示的任务的状态。然后在 Javascript 中,您只需根据用户输入显示/隐藏不同的类。

于 2013-08-31T13:12:13.107 回答