1

データベースから記事を取得する記事のWebサイトのスクリプトをすばやくまとめていました。

これが私のindex.phpスクリプトです

    <?php
    // include header
    require("include/header.php");
    require("include/helperfunctions.inc.php");
    ?>

    <!-- page content -->
    <!-- left section -->
    <section id="contentleft">
<?php require("include/functions.php"); 
displayArticles();
foreach ($articles as $article) : ;
?>
<h2>Recent Articles</h2>
    <ul>
        <li><?php echo htmlout($articles['id']) ; ?></li>
        <li><?php echo htmlout($articles['title']) ; ?></li>
        <li><?php echo htmlout($articles['summary']) ; ?></li>
    </ul>
<?php endforeach; ?>
    </section>

    <!-- right content -->
    <section id="contentright">

    </section>

    <?php
    // include footer
    require("include/footer.php");
    ?>

これが関数ライブラリの始まりです

    function displayArticles($order="publicationdate DESC"){
        // connect to the database
        include("include/db.inc.php");
    $query = "SELECT id, title, summary FROM maths order by ". $order . " limit 10";

// query the database
$result = mysqli_query($link, $query);
    // error checking
    if(mysqli_connect_errno()){
    // $error = "error fetching articles";
    echo " could not connect: " . mysqli_connect_errno() . " ";
    exit();     
}
// loop through storing values into array
while($row = mysqli_fetch_array($result)){
    $articles[] = array('id'=>$row['id'] , 'title'=>$row['title'],'summary'=>$row['summary']);        
}

    }

    ?>

このエラーが発生します:

警告:mysqli_fetch_array()は、パラメーター1がmysqli_resultであると想定しています。ブール値は、17行目のC:\ Apache24 \ htdocs \ include \ features.phpにあります。最近の記事注意:未定義の変数:C:\ Apache24 \ htdocs\home.phpの記事14行目警告:14行目のC:\ Apache24 \ htdocs \ home.phpのforeach()に無効な引数が指定されました

4

1 に答える 1

2

$articles オブジェクトのスコープの問題のようです。displayArticles() 関数で $articles を作成します..しかし、関数の外では、他のコードはそれについて知りません。displayArticles() 内で $articles を返してみて、displayArticles(); を置き換えてください。最初のページの上部で次のように呼び出します。

$articles = displayArticles();

また、コメントのパニックが指摘したように、 foreach ブロック内で間違ったオブジェクトを参照しています。各 $articles[blah] の末尾にある「s」を削除して、$article[blah] となるようにします。

于 2012-07-01T19:39:45.957 に答える