我想回显我想要的结果,我如何进一步过滤它们?进一步过滤我的搜索
示例,search x100 y100
,目前可获得数百个结果。我需要过滤这些结果进一步所以我只让那些这就是被标记为敌对的,尚未了结或友好
我有以下的HTML表单
<form action="xysearch.php" method="post">
<label>X Coord
<input type="text" name="x" />
</label>
<label>Y Coord
<input type="text" name="y" />
</label>
<select name="term">
<option value="Hostile">Hostile</option>
<option value="Pending">Pending</option>
<option value="Friendly">Friendly</option>
</select>
<input type="submit" value="Search" />
</form>
什么,我需要添加到搜索查询办法过滤这些结果,所以只显示在外交下拉列表中选择的选项
我的查询到目前为止,这是行不通的 - 我可以得到所有的结果,但不只是过滤的结果。
<?php
$x = $_POST['x'];
$y = $_POST['y'];
$term = $_POST['term'];
mysql_connect ("localhost","host","pass") or die (mysql_error());
mysql_select_db ("d_base");
$res = mysql_query("SELECT * FROM my_table WHERE (x BETWEEN $x -75 AND $x +75) AND (y BETWEEN $y -75 AND $y +75) ");
$res2 = mysql_query("SELECT dip FROM my_table WHERE dip IN '%$term%' ORDER BY '%$term%' DESC ");
echo "<table border='1' align='center' cellpadding='5'>";
echo "<tr> <th>City Name</th> <th>X</th> <th>Y</th> <th>Diplomacy</th> </tr>";
// loop through results of database query, displaying them in the table
while($row = mysql_fetch_array($res, $res2)) {
// echo out the contents of each row into a table
echo '<td>' . $row['city'] . '</td>';
echo '<td>' . $row['x'] . '</td>';
echo '<td>' . $row['y'] . '</td>';
echo '<td>' . $row['dip'] . '</td>';
echo "</tr>";
// close table>
echo "</table>";
}
?>
我也不太清楚,我要去的地方错了,因为我实际上可以得到结果呼应,仅仅是过滤这就是问题。
你的脚本似乎很容易[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)。你应该看看[如何防止SQL注入PHP?](http://stackoverflow.com/q/60174/53114) – Gumbo 2013-04-07 08:23:38
你好,感谢您的意见,我了解风险,但是,网站只有少数人可以使用它。此访问受密码保护。我敢肯定,当我学习更多关于PHP的时候,我会采用PDO方法。再次,感谢您的警告和建议 – 2013-04-07 08:28:52
如果您不想通过PDO方法,只需使用mysql_real_escape_string – sagibb 2013-04-07 08:32:06