2012-01-06 70 views
-1

请别人帮忙我对PHP很新,所以请耐心等待。无法用foreach提供无效参数吗?

使用下面的代码链接到网站;

我基本上从一个网站复制代码(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> 

这是我的错误消息:

警告:)/应用程序提供的foreach(无效的参数/ XAMPP/xamppfiles/htdocs中/news/homepage.php on line 3

+0

你可以通过foreach代码和数组正在初始化的代码吗? – 2012-01-06 17:13:35

+2

那么,'$ results ['articles']是否存在,如果是,它的价值是什么?如果您是PHP新手,您可能需要阅读['foreach'文档](http://php.net/manual/en/control-structures.foreach.php)。一般来说,只是复制和粘贴代码而不理解它并不是特别有希望的。如果你是新手,你应该先学习这门语言,然后使用它。 – 2012-01-06 17:14:24

+0

那么,你在哪里使用foreach循环?请给出该代码..这是重要的片段。 – darnir 2012-01-06 17:14:39

回答

1

$results['articles']不是数组。你应该把它要么设置为空数组或跳过foreach循环时,它不是一个数组 - 空,字符串,数字等

<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']这可能意味着你的代码有错误,这会填充该数组,或者你没有符合条件的文章=)

0

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

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

很可能你的数据库中没有数据或类似的东西。