2013-11-25 119 views
1

每個人都可以解釋或告訴我爲什麼我得到這個未定義的變量:ID。未定義的變量:ID PHP

功能

public function getByEmbedId($id, $lang=null){ 
    $id = mysql_real_escape_string($id); 
    $embed = array(); 
    $e = mysql_query("SELECT * FROM movie_embeds WHERE id='$id'") or die(mysql_error()); 
    if (mysql_num_rows($e)>0){ 
     $movie = $this->formatEmbedData(mysql_fetch_assoc($e), $lang); 
    } 
    return $embed; 
} 

並調用函數。

<?php 

$embed = $movie->getByEmbedId($id,$language); 
if (empty($embed)){ 
    $embed = ''; 
} else { 
    $smarty->assign("embed",$embed); 
} 

?> 

如果有人能幫助我走出這將是最讚賞

+1

'$ embed = $ movie-> getByEmbedId($ id,$ language);'你從哪裏獲得$ id,$ movie和$ language? – Jite

+2

'mysql'已被棄用。你真的需要開始使用'mysqli'或'PDO'。我更喜歡PDO。 – m59

+0

代碼已經告訴你線索。$ $ embed = $ movie-> getByEmbedId($ id,$ language);'那麼你如何獲得$ id? –

回答

2

檢查$id無論是設置或不調用你的函數之前。做這樣的

<?php 
if(isset($id)) // Make use of the isset construct here 
{ 
$embed = $movie->getByEmbedId($id,$language); 
if (empty($embed)){ 
    $embed = ''; 
} else { 
    $smarty->assign("embed",$embed); 
} 
} 
?> 
+0

應該用'$ movie'和'$ language'做同樣的事情。 – Jite

+1

是的。但是OP得到了這個'Undefined variable:id',如果他也得到'language',讓他做一個練習^ _ ^ –

0

,當你調用$embed = $movie->getByEmbedId($id,$language);,被$id$language變量之前定義的?

0

您應該在函數中使用它之前聲明變量$ id。