gpt4 book ai didi

php - 这个 foreach 循环返回双倍的结果

转载 作者:行者123 更新时间:2023-12-04 21:43:45 25 4
gpt4 key购买 nike

我正在尝试运行一个脚本来获取特定组的成员 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

显然每个号码应该只有一个,因为每个成员只能加入每个组一次。

我之前从未真正使用过 foreach 循环,我不能 100% 确定它们的工作原理,我对语法做了一些研究,但无法弄清楚我哪里出错了。我只能假设我调用了两次但不确定在哪里。

如果有人知道比 foreach 循环更好的方法来实现我所需要的,我会洗耳恭听

谢谢

最佳答案

尝试使用 mysqli_fetch_assoc,msqli_fetch_array 返回数字键和字符串。

<?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_assoc($queryName)){
foreach($array as $value){
echo "$value<br/>";
}
}
?>

关于php - 这个 foreach 循环返回双倍的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20275891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com