2012-01-06 14 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']被分配的代碼,以找出問題所在。

很可能你的數據庫中沒有數據或類似的東西。