2013-10-11 154 views
-1

有人可以幫助我,因爲我是PHP新手。PHP注意:PHP中未定義變量

我使用的是smarty模板引擎,我想要做的是在我的網站上,每部電影都有它自己的類別,並且我試圖使用此功能在電影下方顯示類別。

/* returns a list of categories (including ids and details) for the given 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; 
} 

然後這個調用函數。

$tags = $movie->getMovieCategoryDetails($movieid,$language); 
if (count($tags)){ 
    $smarty->assign("tags",$tags); 
} 

然後這個來顯示它。

{if $movie_tags} 
<tr> 
    <td width="70"><strong>Tags:</strong></td> 
    <td style="width:387px; float:left;"> 
     <span class="movie_info"> 
     {foreach from=$movie_tags key=tag_id item=tag name=tags} 
      {$tags} 
     {/foreach} 
     </span> 
    </td> 
</tr> 
{/if} 

但是得到這個錯誤。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 

而在PHP_ERROR_LOG我得到了這個錯誤。

[11-Oct-2013 11:18:16 Europe/Berlin] PHP Notice: Undefined variable: movieid in C:\xampp\htdocs\home.php on line 69 

任何人都可以請指出我解決這個錯誤的方向。

感謝

+0

此問題似乎是無關緊要的,因爲錯誤消息爲解決此問題提供了充足的信息。 – vascowhite

回答

1

我想PHP的錯誤指向同一個問題,因爲MySQL的錯誤:

看來你的變量$movieid沒有初始化,所以SQL語句失敗,在拋出一個錯誤最後一個括號

也許你可以確保在構建SQL語句之前加入一些調試輸出$e = ....以查看變量內部的內容並從那裏開始。

0

你能此行之前做了echo $movieid;

$tags = $movie->getMovieCategoryDetails($movieid,$language); 

只是可以肯定,如果函數recieving一個正確的ID。

0

如果您的開發使用STRICT環境(而且您應該)並且PHP 5.5或更高版本,則不建議使用mysql_real_escape_string。因此,它們可能是由它返回的錯誤。在您的Apache日誌中提到的那個之前是否有錯誤?