【发布时间】:2014-06-17 13:07:31
【问题描述】:
我是 PHP 和 MySQL 的新手,虽然整个 StackOverflow 中有很多关于这方面的示例,但没有一个非常适合我的情况。
所以,我有一个表格(名为 votes),如下所示:
student_name | student_id | teacher
----------------------------------------
Joe | 991991991 | Mr. Smith
Sally | 717356152 | Ms. Lozano
Benny | 383717747 | Mr. Johnson
Jim | 191918918 | Mr. Smith
John | 182783718 | Mr. Smith
Alfred | 374878372 | Mr. Johnson
我想要一个HTML/PHP 页面在我的一个 DIV 中输出此内容,自动循环遍历教师的所有选项并计算每个教师出现的次数。我希望它在添加新教师时自动计数,这样我就不必更改代码后记。
Mr. Smith: 3
Mr. Johnson: 2
Ms. Lozano: 1
它不需要按任何顺序,我不应该把它们从最小到最大。
我试过做类似的事情
<?php SELECT teacher, SUM(1) FROM votes GROUP BY teacher ?>
或
SELECT teacher, count(teacher)
FROM votes
GROUP by teacher
但它们不起作用并给我一个错误"syntax error, unexpected 'teacher' (T_STRING)"
我可能只是错误地执行它们。它们只是出现在自己的 中,还是需要自己的连接或自己的 while 语句或之前的东西?
有什么建议吗?
编辑:这是我的完整正文代码与我的连接...
$connection = mysql_connect($serverName, $userName, $password) or die('Unable to connect to Database host' . mysql_error());
$dbselect = mysql_select_db($dbname, $connection) or die("Unable to select database:$dbname" . mysql_error());
?>
</head>
<body>
<div align="center">
<form method="post" action="vote_1.php">
<h1>Counted Vote Totals</h1>
<h4>(these values are current)</h4>
<h2>Votes by Cantidate</h2>
<?php SELECT teacher, count(teacher)
FROM votes
GROUP by teacher ?>
</br></br></br>
</form>
</body>
由于密码等原因,我没有包括我的头。
【问题讨论】:
-
首先你不能做
<?php SELECT teacher, SUM(1) FROM votes GROUP BY teacher ?>,如果那是你试图运行的实际代码。您首先需要连接到数据库,然后查询。 -
不能直接将SQL语句放入PHP中,必须使用数据库API。要学习的是 PDO 和 mysqli,它们在 PHP 文档中。
-
根据您的编辑;你不能那样做。如果它那么容易,我会喜欢它;-)
-
好的,既然你已经更新了你的问题,你所缺少的是你必须调用
mysql_query()来执行查询,而不是调用mysql_fetch_assoc()从结果中获取行.您可以阅读许多 PHP+MySQL 教程来展示如何做到这一点。 -
好的,谢谢!生病看看,看看我能找到什么。我什至不知道要寻找什么哈哈