循环包含语句

时间:2013-12-10 04:15:08

标签: php mysql while-loop include

问题是它不会循环。有多个结果,我只是回应我得到的所有结果。当我使用include时,它只显示第一条记录。可以做到这一点。我已经尝试了每一个,我已经尝试过使用数组,我已经尝试过滚动结果,因为我只抓取一个字段,但它不会滚动所有结果,只有第一个结果。谢谢。

$connection = mysql_connect($host,$user,$pass);  
mysql_select_db($dbname); 
$sqlr = "select qNumber from regquestions ORDER BY RAND() LIMIT 0,5";
$query = mysql_query($sqlr); 
//$result = mysql_query($sqlr);
while ($rows = mysql_fetch_array($query))
{
include ("q".$rows['qNumber'].".php");
}

使用Echo我在页面上看到了这个:

q22.phpq3.phpq17.phpq13.phpq4.php

使用include我得到的第一个结果是包含一个页面,但我需要它包含所有页面。

4 个答案:

答案 0 :(得分:1)

1)你说你的循环在包含第一个文件后结束,检查$ rows变量是否在这个文件中被改变(从而触发循环结束)。例如:

other.php:

$rows = 'just a check';

的index.php:

$rows = 'somevalue';
include('other.php');
echo $rows; // output: just a check

2)将include更改为include_once以确保

答案 1 :(得分:0)

尝试

include ("'q".$rows['qNumber'].".php'");

OP表示它正在循环所有结果,但它没有在当前目录中查找它们,它正在查看默认的包含路径。

所以,试试这个:

require __DIR__ . '/"q".$rows['qNumber'].".php"';

答案 2 :(得分:0)

您可以使用分配公共页面并将所有要求发送到该页面功能

来完成

例如:

include("repeat.php");
for($x=1;$x<10;$x++) 
{ 
echo div($x);
} 

repeat.php

function div($x) {
    return "<div>$x</div>";
} 

或尝试此类包含

<?php
for($x=1;$x<10;$x++)
{
include('repeat2.php');
}  
?>

repeat2.php page

 <? //repeat2.php
echo "<div>$x: ".date('H:i:s')."</div>";
sleep(5);
?>

但第二个需要很长时间才能加载

答案 3 :(得分:0)

试试这个......

$result = mysql_query("SELECT qNumber FROM regquestions ORDER BY RAND() LIMIT 0,5;") or die(mysql_error());

for($i = 0; $array[$i] = mysql_fetch_assoc($result); $i++);

// Delete last empty one
array_pop($array);

$x = 0;
$end_of_list = count($array)

while ($x < $end_of_list)
{
    include_once("q".$array[$x].".php");
    $x++;
}