PHP数据库过滤器
我试图有一个简单的选择框来过滤数据库。我已经成功地用pageload上的所有值填充了数据库,但是我似乎无法克服应用过滤器的最后一个障碍。此外,单击“过滤器”按钮后,选择文本是否可以保留在文本中而不是返回默认文本 [注意:我启用了漂亮的URL,因此在结尾处使用了no.php] 代码如下:PHP数据库过滤器,php,mysql,Php,Mysql,我试图有一个简单的选择框来过滤数据库。我已经成功地用pageload上的所有值填充了数据库,但是我似乎无法克服应用过滤器的最后一个障碍。此外,单击“过滤器”按钮后,选择文本是否可以保留在文本中而不是返回默认文本 [注意:我启用了漂亮的URL,因此在结尾处使用了no.php] 代码如下: <?php $query = "SELECT * FROM Events"; echo $Type; i
<?php
$query = "SELECT * FROM Events";
echo $Type;
if (isset($_POST['filter'])) {
$Type = $_POST['value'];
$query .= " WHERE Type = '{$Type}'";
}
$result = mysql_query($query);
?>
<form action='/events' method="post" name="form_filter" >
<select class="eventList">
<option value="EVENT1">EVENT1</option>
<option value="EVENT2">EVENT2</option>
<option value="EVENT3">EVENT3</option>
<option value="EVENT4">EVENT4</option>
<option value="EVENT5">EVENT5</option>
<option value="EVENT6">EVENT6</option>
<input type="submit" name="filter" value="Filter">
</select>
</form>
<table class="table table-striped table-hover table-curved">
<thead>
<tr>
<th><b>Date</b></th>
<th><b>Event Name</b></th>
<th><b>Type</b></th>
<th><b>Region</b></th>
</tr>
</thead>
<tbody>
<?php while ($row = mysql_fetch_array($result)) { ?>
<tr>
<td><?php echo $Date = $row['Date']; ?></td>
<td><?php echo $Name = $row['Name']; ?></td>
<td><?php echo $Type = $row['Type']; ?></td>
<td><?php echo $Region = $row['Region']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
您的
没有名称:
<select class="eventList" name="event">
更新你的代码如下
<?php
$query = "SELECT * FROM Events";
echo $Type;
if (isset($_POST)) {
$Type = $_POST['event'];
$query .= " WHERE Type = '{$Type}'";
}
$result = mysql_query($query);
?>
<form action='/events' method="post" name="form_filter" >
<select class="eventList" name="event">
<option value="EVENT1" <?php echo ($Type=="EVENT1")?'selected="selected"':'';?>>EVENT1</option>
<option value="EVENT2" <?php echo ($Type=="EVENT2")?'selected="selected"':'';?>>EVENT2</option>
<option value="EVENT3" <?php echo ($Type=="EVENT3")?'selected="selected"':'';?>>EVENT3</option>
<option value="EVENT4" <?php echo ($Type=="EVENT4")?'selected="selected"':'';?>>EVENT4</option>
<option value="EVENT5" <?php echo ($Type=="EVENT5")?'selected="selected"':'';?>>EVENT5</option>
<option value="EVENT6" <?php echo ($Type=="EVENT6")?'selected="selected"':'';?>>EVENT6</option>
<input type="submit" name="filter" value="Filter">
</select>
</form>
<table class="table table-striped table-hover table-curved">
<thead>
<tr>
<th><b>Date</b></th>
<th><b>Event Name</b></th>
<th><b>Type</b></th>
<th><b>Region</b></th>
</tr>
</thead>
<tbody>
<?php while ($row = mysql_fetch_array($result)) { ?>
<tr>
<td><?php echo $Date = $row['Date']; ?></td>
<td><?php echo $Name = $row['Name']; ?></td>
<td><?php echo $Type = $row['Type']; ?></td>
<td><?php echo $Region = $row['Region']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
>事件1
>事件3
>事件5
我必须更新这一行
`国际单项体育联合会(国际单项体育联合会){
并添加了选择名称和代码列表代码
$Type =$_POST['event'];
<select class="eventList" name="event">
<option value="EVENT1" <?php echo ($Type=="EVENT1")?'selected="selected"':'';?>>EVENT1</option>
$Type=$\u POST['event'];
(1) 表单输入需要一个name属性-
,然后在php中获得该属性-$Type=$\u POST['eventList'];
(2)您应该清理添加到查询中的任何数据-$Type=mysql\u real\u escape\u string($\u POST['eventList'])。(3)为什么提交按钮嵌套在
中花点时间从mysql
更新到mysqli
或PDO
@Sean,感谢您提供的信息-即使所有的更改都不起作用。我单击“筛选”按钮,它只会返回到同一页面,而不会对表格进行任何更改。这并不能解决OPs问题,因为
没有ame属性,所以所有的echo($Type==“…”)
除了数据库过滤不起作用之外,永远不会起作用我编辑了代码你是对的,我在发布后意识到这一点是有效的,但是我如何编辑它,使它在第一次加载页面时显示所有结果?它应该在第一次加载页面时显示结果,但在发布页面后,它将显示过滤结果(如果有)如果不是这样的话,请告诉我,我会寄给你解决办法的
$Type =$_POST['event'];
<select class="eventList" name="event">
<option value="EVENT1" <?php echo ($Type=="EVENT1")?'selected="selected"':'';?>>EVENT1</option>