为foreach提供的无效参数有问题吗?

时间:2012-01-06 17:11:34

标签: php

请有人帮助我对PHP很新,所以请耐心等待。

使用以下代码链接到网站;

我基本上是从网站上复制代码(http://www.elated.com/articles/cms-in-an-afternoon-php-mysql/),并试图在我自己的网站项目中实现。

以下是问题代码....

  <ul id="headlines">

<?php foreach ( $results['articles'] as $article ) { ?>

    <li>
      <h2>
        <span class="pubDate"><?php echo date('j F', $article->publicationDate)?></span>
        <a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>"><?php echo htmlspecialchars( $article->title )?></a>
      </h2>
      <p class="summary"><?php echo htmlspecialchars( $article->summary )?></p>
    </li>

<?php } ?>

  </ul>

  <p><a href="./?action=archive">Article Archive</a></p>

这是我的错误消息:

  

警告:在第3行的/Applications/XAMPP/xamppfiles/htdocs/news/homepage.php中为foreach()提供的参数无效

2 个答案:

答案 0 :(得分:1)

$results['articles']不是数组。你应该把它设置为一个空数组,或者当它不是一个数组时跳过foreach循环 - null,string,number等。

<ul id="headlines">

<?php if (!$results['articles']) $results['articles'] = array(); ?>
<?php foreach ( $results['articles'] as $article ) { ?>

    <li>
      <h2>
        <span class="pubDate"><?php echo date('j F', $article->publicationDate)?></span>
        <a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>"><?php echo htmlspecialchars( $article->title )?></a>
      </h2>
      <p class="summary"><?php echo htmlspecialchars( $article->summary )?></p>
    </li>

<?php } ?>

  </ul>

  <p><a href="./?action=archive">Article Archive</a></p>

这只是一个快速修复。但是当你有一个空的$results['articles']时,这可能意味着你的代码中有一个错误,它填满了那个数组,或者你没有符合你标准的文章=)

答案 1 :(得分:0)

“问题”代码与问题无关。

$ results ['articles']不是一个数组 - 就是这样。你必须验证分配了$ results ['articles']的代码,以找出问题所在。

您的数据库中很可能没有数据或类似数据。