2011-03-24 58 views
3

在我目前的PHP腳本這個錯誤出現:未定義抵消:1個未定義抵消:1

我的代碼是在這裏:

$query = "SELECT item_id, username, item_content FROM updates ORDER BY update_time DESC     LIMIT " . $start . ", " . $number_of_posts; 

    $result = mysql_query($query) or die(mysql_error());   
    while($row = mysql_fetch_assoc($result)) { 
      preg_match("/<p>(.*)<\/p>/",$row['item_content'],$matches); 
      $row['item_content'] = strip_tags($matches[1]); 
      $posts[] = $row; 
     } 

如果你看到什麼導致此,下面發佈將真正幫助。謝謝! :)

+2

,也接受了一些答案比人們會想幫助ü更^ _^ – Neal 2011-03-24 19:07:53

回答

4

嘗試

if (isset($matches[0]) && isset($matches[0][1])) 
    $row['item_content'] = strip_tags($matches[0][1]); 
else 
    $row['item_content'] = ''; 
1

錯誤是在這條線:

$row['item_content'] = strip_tags($matches[1]); 
+0

同意,我認爲這是一個不正確的使用用strip_tags的 - 用strip_tags應該在整個字符串上使用 - 如果$ matches是一個字符串(它應該是preg_match行),那麼$ matches [1]將只是一個字符,對吧? – RussellUresti 2011-03-24 19:15:01

0

正如尼爾說,有上線的問題。看起來$ matches [1]是未定義的(即沒有數字,或只有1個匹配,$ matches [0])。確保你的桌子工作正常。取而代之的

$row['item_content'] = strip_tags($matches[1]); 

+0

爲什麼downvote?不夠清楚?或者我錯了? – 2011-03-25 19:25:07