Php 论坛不显示';全部';结果
因此,我在服务器上有一个表,用于保存用户输入的帖子。在这最后一页中,您可以查看它们,您可以选择查看每个人的结果,或者只选择某个特定的天气进行查看。“选择特定天气”部分正在工作,但如果选择“全部”选项,则不会显示任何内容。知道原因吗Php 论坛不显示';全部';结果,php,mysql,Php,Mysql,因此,我在服务器上有一个表,用于保存用户输入的帖子。在这最后一页中,您可以查看它们,您可以选择查看每个人的结果,或者只选择某个特定的天气进行查看。“选择特定天气”部分正在工作,但如果选择“全部”选项,则不会显示任何内容。知道原因吗 View Posts <br> <form method="get" action="view_forum.php"> <label>Select Weather to Filter </label><b
View Posts
<br>
<form method="get" action="view_forum.php">
<label>Select Weather to Filter </label><br />
<select name="weather">
<option value="all">all</option>
<option value="cloudy">Cloudy</option>
<option value="sunny">Sunny</option>
<option value="windy">Windy</option>
<option value="snowy">Snowy</option>
<option value="mixy">Wintery Mix</option>
<option value="rainy">Rainy</option>
</select>
<input type="submit" value="view" />
</form>
<div id="view">
<center><img src="images/forum.png" width="589" height="97"></center>
</div>
<div id="white">
<div id="blue">
<div id="grey">
<div id="container">
<?php
$dbc = mysql_connect('html','user','password','database');
mysql_select_db('database',$dbc);
$weather = sanitize( $_GET["weather"] ); // keep your input clean
if ( $weather == "all" ) {
$sql = "SELECT * FROM stories ORDER BY id DESC";
} else {
$sql = "SELECT * FROM stories WHERE weather = '$weather' ORDER BY id DESC";
}
while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
echo "<div class=\"names\"> {$row['name']}<br /></div>";
echo "<div class=\"weathers\">{$row['weather']}<br /></div>";
echo "<div class=\"stories\">{$row['story']}<br /></div>";
echo "<img src=\"images/line.png\" width='800' height='3'>";
echo "<br />";
}
?>
</div>
</div>
</div>
</div>
查看帖子
选择要过滤的天气
全部的
多云
晴朗的
多风的
下雪的
冬季混合
多雨的
如果选择“全部”,则需要完全删除WHERE
子句
您应该特别注意sql注入,如果可能的话,请转到或
查询的
但您的主要问题是,您对all
进行查询时,除非您调用了all
,否则它将找不到它
解决方案是检查all
选项,并根据该选项更改查询
另外,如果未设置$\u GET['weather']
,您需要一个默认值,我怀疑您也有错误报告,并且它没有抛出一个通知:未定义错误
<?php
if(isset($_GET['weather'])){
$_GET['weather']=mysql_real_escape_string($_GET['weather']);
//All
if($_GET['weather'] == 'all'){
$sql = "SELECT * from stories ORDER BY id DESC";
}else{
//Specific
$sql = "SELECT * from stories WHERE weather='{$_GET['weather']}' ORDER BY id DESC";
}
}else{
//Default
$sql = "SELECT * from stories ORDER BY id DESC";
}
?>
如果$\u GET['weather']=='all'
,您需要完全删除WHERE
子句。hmm我收到一个错误,它说清理是一个未定义的函数,我更新了上面的代码。我肯定你所拥有的是正确的!我可能只是输入了错误。@ChristineAustinsanitize
不是默认函数。这只意味着您需要确保首先检查输入查询的数据。@ChristineAustin您能echo$sql
在运行它之前,向我们显示它正在运行的查询?问题是您没有使用mysql\u查询($sql)
@ChristineAustin Lawrence是正确的。您需要运行查询。在上面的答案中查看我的更新。这也给出了一个错误“警告:my_sql_escape_string()期望参数2是一个资源”
,在使用它之前,你需要确保你的连接确实显示了所有帖子,但我仍然收到了这个错误警告:mysql_real_escape_string()期望参数2是一个资源。
我确信这就是为什么当我选择单个天气查看它时它不再工作的原因。好的,因为您只使用天气键,只需使用$\u GET['weather']=mysql\u real\u escape\u字符串($\u GET['weather')代码>这是另一种方法,是的。对不起,我太笨了……我是php新手!谢谢你的帮助!
<?php
if(isset($_GET['weather'])){
$_GET['weather']=mysql_real_escape_string($_GET['weather']);
//All
if($_GET['weather'] == 'all'){
$sql = "SELECT * from stories ORDER BY id DESC";
}else{
//Specific
$sql = "SELECT * from stories WHERE weather='{$_GET['weather']}' ORDER BY id DESC";
}
}else{
//Default
$sql = "SELECT * from stories ORDER BY id DESC";
}
?>
<?php
$dbc=mysql_connect('html','user','password','database') or die(mysql_error());
mysql_select_db('database',$dbc) or die(mysql_error());
?>
View Posts <br>
<form method="get" action="view_forum.php">
<label>Select Weather to Filter </label><br />
<select name="weather">
<option value="all">all</option>
<option value="cloudy">Cloudy</option>
<option value="sunny">Sunny</option>
<option value="windy">Windy</option>
<option value="snowy">Snowy</option>
<option value="mixy">Wintery Mix</option>
<option value="rainy">Rainy</option>
</select>
<input type="submit" value="view" />
</form>
<div id="view">
<center><img src="images/forum.png" width="589" height="97"></center>
</div>
<div id="white">
<div id="blue">
<div id="grey">
<div id="container">
<?php
if(isset($_GET['weather'])){
$_GET['weather']=mysql_real_escape_string($_GET['weather']);
//All
if($_GET['weather'] == 'all'){
$sql = "SELECT `name`,`weather`,`story`
FROM stories
ORDER BY id DESC";
}else{
//Specific
$sql = "SELECT `name`,`weather`,`story`
FROM stories
WHERE weather='{$_GET['weather']}'
ORDER BY id DESC";
}
}else{
//Default
$sql = "SELECT `name`,`weather`,`story`
FROM stories
ORDER BY id DESC";
}
$result = mysql_query($sql);
if(mysql_num_rows($result)>0){
while($row=mysql_fetch_assoc($result)){
echo "<div class=\"names\"> {$row['name']}<br /></div>";
echo "<div class=\"weathers\">{$row['weather']}<br /></div>";
echo "<div class=\"stories\">{$row['story']}<br /></div>";
echo "<img src=\"images/line.png\" width='800' height='3'>";
echo "<br />";
}
}else{
echo 'No results';
}
?>
</div>
</div>
</div>
</div>