2013-11-28 47 views
0

有人可以幫助我,因爲我是新來的PHP?只返回1個項目

我正在運行一個使用smarty模板引擎的電影網站,我想要做的是返回並顯示所有類別的foreach電影,但是會發生什麼情況是它顯示相同類別的「喜劇」此

功能

public function getByPerma($perma, $lang=null){ 
    $perma = mysql_real_escape_string($perma); 
    $movie = array(); 
    $e = mysql_query("SELECT * FROM movies WHERE perma='$perma'") or die(mysql_error()); 
    if (mysql_num_rows($e)>0){ 
     $movie = $this->formatMovieData(mysql_fetch_assoc($e), $lang); 
    } 
    return $movie; 
} 

public function getMovieCategoryDetails($movieid,$lang=null){ 
    $movieid = mysql_real_escape_string($movieid); 
    $e = mysql_query("SELECT * FROM movie_tags WHERE id IN (SELECT tag_id FROM movie_tags_join WHERE movie_id=$movieid)") or die(mysql_error()); 
    $tags = array(); 
    if (mysql_num_rows($e)){ 
     while($s = mysql_fetch_array($e)){ 
      $s['tag'] = json_decode($s['tag'],true); 
      if ($lang){ 
       $s['tag'] = $s['tag'][$lang]; 
      } 

      $tags[$s['id']] = $s; 
     } 
    } 
    return $tags; 
} 

調用的函數

$movies = $movie->getByPerma($perma,$language); 
if (empty($movies)) { 
    $movies = ''; 
} else { 

    $tags = $movie->getMovieCategoryDetails($movies['id'],$language); 
    if (!count($tags)){ 
     $smarty->assign("tags",""); 
    } else { 
     $smarty->assign("tags",$tags); 
    } 
} 

以及顯示所述分類

{foreach from=$tags key=id item=val name=tags} 
    {$val.tag} 
{/foreach} 

我希望有人能幫忙嗎?

+0

這似乎奇怪的相似,當我在看代碼這個問題:HTTP:/ /stackoverflow.com/questions/20227828/call-to-a-member-function-on-a-non-object-php/20227889#20227889 – JakeGould

+0

@JakeGould他們顯然是同一個應用程序的一部分,但不同的問題與它。 – Barmar

+1

**警告:**'mysql_'函數自PHP 5.5.0起棄用,並且將來會被刪除。相反,[MySQLi](http://www.php.net/manual/en/book.mysqli.php)或[PDO_MySQL](http://www.php.net/manual/en/ref.pdo-應該使用mysql.php)擴展名。 – bansi

回答

1

我覺得你getByPerma()只返回1個電影信息,當添加物品到數組,[]丟失:

$movie = $this->formatMovieData(mysql_fetch_assoc($e), $lang); 
--> 
$movie[] = $this->formatMovieData(mysql_fetch_assoc($e), $lang);