<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的新手,我不知道我是否遗漏了一些明显的东西。我做了一点搜索,但说实话,我不完全确定要搜索什么,所以我想问一下。谢谢,任何帮助表示赞赏。
答案 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,因为它不会添加到您的查询中。