【发布时间】:2013-12-15 01:37:32
【问题描述】:
我正在尝试运行一个脚本来获取特定组的成员 ID。 当我使用 foreach 循环时,它会返回每个结果两次,有时会错过数据库中的最后一个结果。
这是我的代码:
<?php
include_once("scripts/checkuserlog.php");
$squadid = "";
if (isset($_GET['pid'])){ $squadid = $_GET['pid'];};
$sqlName = "SELECT mem_id FROM team_members WHERE team_id='$squadid' AND is_member='1'" or die ("Sorry we had a mysql error!");
$queryName = mysqli_query($db_conx, $sqlName);
while($array = mysqli_fetch_array($queryName)){
foreach($array as $value){
echo "$value<br/>";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>
抛出的结果如下所示:
3
3
2
2
1
1
4
4
5
5
显然每个数字应该只有一个,因为每个成员只能加入每个组一次。
在没有 100% 确定它们的工作之前,我从未真正使用过 foreach 循环,我对语法进行了一些研究,但无法找出我哪里出错了。我只能假设我打了两次电话,但不确定在哪里。
如果有人知道除了 foreach 循环之外还有更好的方法来实现我需要的东西,我会全力以赴
谢谢
【问题讨论】:
-
这可能是关联返回的。这意味着它将返回与命名索引配对的键索引结果。它适用于想要立即使用结果偏移量以及命名绑定的懒人。如有疑问,请务必阅读文档; us2.php.net/mysqli_fetch_assoc