我怎样才能通过嵌套在'while'循环中的变量来最好地循环数据,但是在它之外调用它?就像在这个例子中一样:
PHP:
$fr_q2 = mysqli_query($connect,"SELECT * FROM friends WHERE username ='".$_SESSION['user']."'
ORDER BY id DESC");
while ($rowsPicFr2 = mysqli_fetch_array($fr_q2)) {
$friends_q2[] = $rowsPicFr2['added_friend'];
$frn[] = $rowsPicFr2['added_friend'];
$frn2 = $rowsPicFr2['added_friend'];
}
$rowscheck = mysqli_num_rows($fr_q2);
for ($i=0; $i<$rowscheck; $i++)
HTML:
<a href="#" onclick="remdata(<?php echo $frn[$i]; ?>)">YES</a>
所以我需要将$ frn [$ i]传递给remdata()函数 - 但是$ frn [$ i]需要循环....所有我得到的是来自'friend_added'的所有id的字符串$ FRN [$ i]于....谢谢。
答案 0 :(得分:1)
将此HTML发送到浏览器后,它将不再循环。它只是HTML。所以你需要做的是让它在JavaScript中循环或者只是回显每个remdata():
<a href="#" onclick="<?php foreach($frn as $f) echo "remdata({$f});"; ?>">YES</a>
如果你在$ frn中只有很少的元素,这个解决方案真的是一个选项。
答案 1 :(得分:1)
你的问题令人困惑;我认为你需要HTML输出的循环
<?php foreach ($frn as $i => $friend_id){ ?>
<a href="#" onclick="remdata(<?php echo $friend_id; ?>)">YES</a>
<?php } ?>
根据你在toon81的回答中的评论,你的输出中有几个循环处理数据库查询中的相同结果集似乎有问题。我不确定。我建议您将来尝试让您的问题更容易理解。例如,我们是否需要知道它是一个社交网络应用程序?您的变量名称本身并不容易理解; $ frn和$ frn2之间有什么区别?大概是那个'朋友',但我一直把它当作'蕨'。您也只提供了一行输出,但您的问题似乎与它与其他输出的交互有关。您的代码被截断 - rowscheck循环没有定义。
那就是说,这是对我如何以不同方式处理你的工作的高级建议。数据准备:
$connection = ...;
$user = $_SESSION['user'];
$sql = "
SELECT added_friend
FROM friends
WHERE username = '$user'
ORDER BY id DESC
";
$response = mysql_query($sql, $connection);
$added_friends = array();
while ($row = mysql_fetch_object($response)){
$added_friends[] = $row->added_friend;
}
输出处理:
// With one loop if the markup can be ouput all at once.
foreach ($added_friends as $friend){
// Your 'friends_q2', whatever that is.
echo "Friends_q2: $friend";
// Your 'frn2' output, whatever that is.
echo "Frn2: $friend";
// Your 'frn' output.
echo "<a href=\"#\" onclick=\"remdata($friend)\">YES</a>";
}
// ...or multiple loops if it can't.
foreach ($added_friends as $friend){
// Your 'friends_q2', whatever that is.
echo "Friends_q2: $friend";
}
foreach ($added_friends as $friend){
// Your 'frn2' output, whatever that is.
echo "Frn2: $friend";
}
foreach ($added_friends as $friend){
// Your 'frn' output.
echo "<a href=\"#\" onclick=\"remdata($friend)\">YES</a>";
}
在任何情况下,您在不同的列表中以不同的方式处理相同的ID三次。我不确定为什么。这是你要求帮助的吗?