搜索功能无法显示正确的记录PHP

时间:2014-11-22 23:11:09

标签: html

<form id = "gameYear" method="get" action="result.php">
<label> 
    Game Year
    <select name="gameYear">
       <option value="2001">2001</option>
       <option value="2002">2002</option>
    </select>
</label>
   <input type = "submit" name="search" value = "Search">
</form>


<?php
include 'dbConnection.php'; 

$gameYear = $_GET['gameYear'];
$query = "SELECT gameSerial, gameTitle, gameYear, gameCost FROM games WHERE 1 AND gamesYear <='$gamesYear'";


mysqli_free_result($Games); 
mysqli_close($conn);

?>

现在HTML表单提交并链接到数据库ok,但是,记录不匹配。例如,如果我选择“2001”,它将撤回其他记录,而不仅仅是2001年。我是PHP的新手,我不知道我是否遗漏了一些明显的东西。我做了一点搜索,但说实话,我不完全确定要搜索什么,所以我想问一下。谢谢,任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:0)

我可能错了,但请尝试将您的查询更改为

 $sql = "SELECT gameSerial, gameTitle, gameYear, gameCost FROM games WHERE gamesYear ='$gameYear'";

我不确定&#39; WHERE 1&#39;和......事情是

另外,您在PHP变量

中添加了额外的s

答案 1 :(得分:0)

注意最后一个SQL:

AND gamesYear <='$gamesYear'";

你获得的变量是gameYear - 没有s。

答案 2 :(得分:0)

$sql = "SELECT gameSerial, gameTitle, gameYear, gameCost FROM games WHERE 1 AND gamesYear ='$gameYear'";

如果你跳过&lt;如上图所示?另外我认为你在变量名中输了一个拼写错误。

答案 3 :(得分:0)

您在正确的轨道上,但您使用的操作员不正确。 1 AND gamesYear <='$gamesYear'会查找所有在之前或之后发布的游戏。 您需要的是相等运算符: 1 AND gamesYear ='$gamesYear'

此外,您可以完全取消1 AND,因为它不会添加到您的查询中。