代码导致页面使用PHP呈现空白

时间:2014-05-12 16:21:23

标签: php syntax render

所以这是我从头开始编写的第一个PHP脚本(如果它甚至被称为?),当它应用于现有(和其他工作)页面时,我遇到了一个问题,页面显示空白。我希望有许多比我更好,更有经验的人可以看一看,发现毫无疑问是一个明显的语法错误。提前感谢任何向我展示光明的人!

<?php
$sql = "SELECT * FROM 'jos_downloads_files'";
$rows = $db->fetch_all_array($sql);

foreach($rows as $row) {
    $filename = $row['filetitle'];
    $filepath = $row['realname'];
    $featured = $row['featured'];
    $id = $row['containerid'];
}

foreach ($id as $containername) {

    if ($id == 2) {
        $containername ="Incidental Information";
    }

    if ($id == 3) {
        $containername ="Monitoring Reports";
    }

    if ($id == 4) {
        $containername ="Agendas";
    }

    if ($id == 5) {
        $containername ="Decision Prep";
    }

    if ($id == 6) {
        $containername ="Agendas";
    }

    if ($id == 7) {
        $containername ="Policy Governance";
    }

    echo '<div class = "moduletable">
        <h3>' . $containername . '</h3>'; 

    foreach ($featured as $featureedtrue) {

        if ($featuredtrue == 1) {
            echo '<ul class="weblinks">
                <li>
                    <a>' . $filename . '</a>
                </li>';
        }
    }
}   
?>

1 个答案:

答案 0 :(得分:0)

正如celeriko所说,你在使用它之前从未声明$db。正如Xatenev所说,我不确定fetch_all_array是什么,也许是fetchAll()?最后,正如Valery Statichny所说,$id永远不会是一个数组。

将来,打开错误报告会很有帮助,这样您就可以看到脚本崩溃的位置。您可以通过添加以下内容来完成此操作:

ini_set('display_errors',1); 
error_reporting(E_ALL);

在生产环境中,关闭错误报告,以便用户看不到错误消息。

修改

更多来自Xatenev:

为什么要循环foreach $精选? $ featured目前只能是一个条目。你必须写$ featured [] = $ row ['featured'];得到一个你可以循环的数组。与$ id相同。你正在循环使用$ features但是使用$ filename呢? $ filename将在每次循环$ features时打印一个数组。因此,例如,当您在$ features中有100个条目时,在打印$ filename时,您有100x相同的内容。 - Xatenev