【问题标题】:SQL : errors while giving WHERE clause on counting columnsSQL:在计算列时给出 WHERE 子句时出错
【发布时间】:2015-12-08 12:25:56
【问题描述】:

我是 PHP 新手。我有一张桌子,有两列 CarAge,有重复的车名。我正在计算 Car 列,它们具有相同的年龄并显示为名为 Count 的新列。

从 HTML 我将 Age 列解析为

$userinput = $_POST['Age'];

我只想使用 $userinput 从表中检索 Age 列,并计算对应于相同年龄的 same 汽车的数量。

我尝试过这样的编码

$result = mysql_query("SELECT *,`Age`,COUNT(Age) As Age_count FROM `table` GROUP BY `Car`,`Age` HAVING (COUNT(Age)>=1) ORDER BY `Car` DESC") or die(mysql_error());

它可以按我的意愿正确完成工作,但是当我在 SELECT 查询中使用“*”时,它会显示整个数据库。我无法在此查询中包含“$ userinput”,我可以得到用户输入的年龄结果。我无法将WHERE 子句放入查询中,因为它显示错误。

如果我有任何错误,请纠正我。谢谢。

问候, 阿图尔

【问题讨论】:

  • 你应该分享错误信息。
  • 检查group by sintaxis 看看如何使用where
  • STOP 使用已弃用的 mysql_* API。将 mysqli_*PDO 与准备好的语句一起使用
  • 正如@Jens 所说,不要再使用 mysql,因为它已被弃用,将在 PHP 7.0 中删除

标签: php mysql sql


【解决方案1】:

正如已经说过的,考虑切换到mysqli_,因为 mysql_ 已被弃用。 至于在查询中插入变量,很​​简单:

$userinput = $_POST['Age'];
$result = mysql_query("SELECT COUNT(DISTINCT Car) As Age_count FROM `table` WHERE Age = {$userinput}" ) or die(mysql_error());

这个 sn-p 为您提供了针对给定年龄的许多不同类型的汽车。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2020-07-20
    相关资源
    最近更新 更多