Php 如何使用for each循环显示来自数据库的结果

Php 如何使用for each循环显示来自数据库的结果,php,mysql,html,Php,Mysql,Html,因此,我试图显示调查的答案,但首先我想将用户ID彼此分开。现在存储的答案与此类似 SGpID、SGresult、SGFACemail 基本上,我想为每个唯一ID显示一个按钮。因此,如果我有5个ID为10的答案,以及5个ID为12的答案。我想要显示ID 10的结果和ID 12的结果的按钮 它当前所做的是显示select语句匹配的每个迭代,因此基本上每个答案都匹配。。。不,布埃诺 我的想法是,我会通过一个for-each循环来分离结果,并按照 每次SGpID不同时,用新的SGpID显示一个新按钮 我

因此,我试图显示调查的答案,但首先我想将用户ID彼此分开。现在存储的答案与此类似

SGpID、SGresult、SGFACemail

基本上,我想为每个唯一ID显示一个按钮。因此,如果我有5个ID为10的答案,以及5个ID为12的答案。我想要显示ID 10的结果和ID 12的结果的按钮

它当前所做的是显示select语句匹配的每个迭代,因此基本上每个答案都匹配。。。不,布埃诺

我的想法是,我会通过一个for-each循环来分离结果,并按照

每次SGpID不同时,用新的SGpID显示一个新按钮

我只是不知道该怎么写。以下是我到目前为止对声明的看法

$query_db = ("SELECT SGpID FROM SGresult WHERE SGFACemail = '$email'");
$result = mysql_query($query_db) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
//insert for each loop here?
echo $row['SGpID'];
}
一如既往地感谢您在这方面的任何帮助或想法

将SELECT命令更改为:

SELECT DISTINCT SGpID FROM SGresult WHERE SGFACemail = ?

我用过的钞票?代替“$email”,因为你真的应该使用事先准备好的声明。学习

我不太确定您想要输出什么,因为您只选择了SGpID。您可能希望执行以下操作:从SGresult中选择SGpID,将SGpID计数为c,其中SGFACemail='$email'组按SGpID排序-然后您可以像这样在while循环中输出它:{$row['SGpID']}:{$row['c']};有趣的是,我必须放弃。现在我只需要ID,下面的答案对我很有用!非常感谢艾格拉尔!这就成功了,我不知道mysql的独特功能。至于准备好的声明,我将对此进行深入研究,但我认为,根据我的理解,如果变量$email来自$u POST声明,它将防止人们说丢桌子?再次感谢!从$\u POST它绝对不会受到保护。恶意用户可以发布他们想要的任何字符串,包括“;删除表SGresult;-。如果你敢的话,试着用这个电子邮件地址提交你的表格。。所以我接受了你的建议,按照你的建议做了,也尝试了许多其他方法,尝试将sql_语句注入到我的表单中。他们都没有工作。所以也许戈达迪提供了某种保护??但是每次我试着插入你的陈述,我都会得到结果。例如删除表格结果;-'我甚至尝试了其他SQL注入。。。有什么想法吗?MySQL连接器可能只允许每个查询使用一个命令,如果是这样的话,它可以提供一些保护。然而,即使这样,攻击者仍然可以构造您不打算运行的查询。无论如何,你应该毫不犹豫地谨慎行事,使用事先准备好的陈述。