【问题标题】:Loop Include Statements循环包含语句
【发布时间】:2013-12-27 11:13:39
【问题描述】:

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

$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

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

【问题讨论】:

  • 你为什么用同一个查询两次调用mysql_query()
  • 对不起,额外的 $result 行在那里。我把它注释掉了尝试另一种方法
  • 数据库连接没有失败。我可以做 Echo ("q".$rows['qNumber'].".php");并查看所有结果,正如我所说,使用 include 我只得到第一个结果。所以有结果
  • @ling.s 关闭。它正在循环所有结果,但不是在当前目录中查找它们,而是在默认包含路径中查找...虽然比迄今为止更接近
  • 另外,如果两次拉取同一个文件,它就会中断。您需要使用include_once("file.php");

标签: php mysql while-loop include


【解决方案1】:

试试这个吧……

$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++;
}

【讨论】:

  • 我对此抱有希望,但在第一次包含后它就停止了
【解决方案2】:

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

其他.php:

$rows = 'just a check';

index.php:

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

2) 将 include 更改为 include_once 以确保

【讨论】:

  • 不,下一个文件运行查询并输出数据。包含文件中的变量称为 $row,因此它不会干扰此文件中的 $rows
  • 好吧,提供的所有可能的循环,包括你的,都应该工作。你能显示你包含的文件吗?尝试包含一些只有 echo 的测试文件。
  • 谢谢。 $Row/$Rows 不是问题,但当前页面和包含的 $query/$query 是。我在当前文件中将 $query 更改为 $queries,所有包含现在加载并运行它们各自的查询以填充测试问题和选项。再次感谢
【解决方案3】:

试试

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

OP 说它正在循环所有结果,但不是在当前目录中查找它们,而是在默认包含路径中查找。

那么,试试这个:

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

【讨论】:

    【解决方案4】:

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

    例如:

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

    重复.php

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

    或者尝试这种类型的包含

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

    repeat2.php 页面

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      • 2021-08-19
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      相关资源
      最近更新 更多