从while循环加载变量

时间:2012-02-28 10:28:29

标签: php mysql

我有一个包含页面内容的MySQL表,每行内容都有一个page_id号

我想加载我所在页面的所有变量,然后将它们显示在需要的位置...

我正在命名变量:div_1,div_2,div_3等等

这就是我正在尝试的事情:

PHP

$home_p1 = mysql_query("select div_content from page_content where (page_id = '1');",$db);

$i=1;
while ($p1 = mysql_fetch_array($home_p1)){
$div_.$i = $p1[0];
$i++;
}

然后整个页面我都可以

echo $div_1;
blah blah blah
echo $div_2
blah blah blah
echo $div_3
etc etc

但是我什么都没有回来,我甚至不确定这是否是做这种事情的正确逻辑?

4 个答案:

答案 0 :(得分:1)

使用数组。

$div[$i] = $p1[0];

通过页面,您可以:

echo $div[1];
blah blah blah
echo $div[2];
blah blah blah
echo $div[3];
etc etc

如果您想保留结构结构,请使用:

$tempname = "div_".$i;
$$tempname=$p1[0];

有关详细信息,请参阅this(第一个解决方案)和this(第二个解决方案)。

答案 1 :(得分:0)

将它组织成这样的数组:

$home_p1 = mysql_query("select div_content from page_content where (page_id = '1');",$db);
$results = array();
$i=1;
while ($p1 = mysql_fetch_array($home_p1)){
    //$div_.$i = $p1[0];
    $results[] = $p1[0];
    $i++;
}

然后你可以通过

访问第一行
echo $results[0]; // second by $results[1] and so on.

玩得开心!

答案 2 :(得分:0)

您无法创建如下变量:

$div_.$i = $p1[0];

你应该将它们放入这样的数组中:

$div_array = array();

然后

$div_array[$i] = $p1[0];

现在您可以通过直接引用数组来输出它们:

echo $div_array[1];

或者你可以使用extract:

将数组扩展为变量
extract($div_array, EXTR_PREFIX_ALL, 'div_');

现在你有$ div_ $ i变量。

答案 3 :(得分:0)

为了达到你想要的目的,你应该做下一件事:

$home_p1 = mysql_query("select div_content from page_content where (page_id = '1');",$db);

$i=1;
while ($p1 = mysql_fetch_array($home_p1)){
  $name = 'div_' . $i;
  $$name = $p1[0];
  $i++;
}

您将获得名称为$ div_1,$ div_2等的变量列表。 http://www.php.net/manual/en/language.variables.variable.php

但正如所说,最好的方法是使用数组。

$home_p1 = mysql_query("select div_content from page_content where (page_id = '1');",$db);

$i=1;
$divs = Array();
while ($p1 = mysql_fetch_array($home_p1)){
  $divs['div_' . $i] = $p1[0];
  $i++;
}
相关问题