'function'从外部获取循环变量

时间:2011-09-30 20:15:58

标签: php html

我有一个while循环,用于将用户ID分配给变量。变量是一个数组。当我在这样的链接中将变量分配给另一个时:它会在点击时返回正确的ID,但仅当链接处于while循环时才会返回。如何(可能)将链接放在while循环之外并获得变量保存的相同ID数据?

此代码有效:

while ( $row = mysqli_fetch_array($sql)) { 
    $variable = $row['user_id'];
    echo "<a href='index.php?var=$variable'></a>";
} 

在这种情况下,这个没有:

PHP:

while ( $row = mysqli_fetch_array($sql)) { 
    $variable[] .= $row['user_id'];
} 

HTML:

for ($i = 0 ; $i <100 ; $i++ );
<a href='index.php?var=$variable[$i]'></a>

感谢您的评论..

3 个答案:

答案 0 :(得分:5)

你有一个语法蠢:

for ($i = 0 ; $i <100 ; $i++ );
                              ^----

分号终止for循环,所以你做了一个空循环。将其更改为:

for ($i = 0 ; $i <100 ; $i++ )
    echo "<a href......etc....";

或更好:

for ($i = 0 ; $i <100 ; $i++ ) {
    echo "<a href......etc....";
}

答案 1 :(得分:1)

while ( $row = mysqli_fetch_array($sql)) { 
    $variable[] .= $row['user_id']; //Wrong
    $variable[] = $row['user_id']; //Correct
}

foreach($variable as $value) {
    echo "<a href='index.php?var=$value'></a>"; // Be sure to use double quotes
}

答案 2 :(得分:0)

这里有几个问题:

  1. $variable是在while循环的范围内定义的,所以它 在所述循环之外是不可访问的(尽管PHP可能让你逃脱这个循环)。
  2. 您假设通过执行$sql表示的SQL查询,确实返回了100行(索引为0-99)。虽然这可能是正确的,但假设这样做并不是一个好习惯,你应该处理通过执行该查询而返回实际的许多行。
  3. 也许最重要的是,如果你真的在HTML上下文中使用<a href='index.php?var=$variable[$i]'></a>,它将无效,因为$variable[$i]是PHP代码。您需要将它放在PHP文档中,介于<?php?>标记之间。