有人可以帮助我,因为我是PHP的新手。
我正在使用智能模板引擎,而我正在尝试做的是在我的网站上每部电影都有自己的类别,我试图通过使用此功能在电影下方显示类别。
/* 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 :(得分:1)
我认为php错误指向与MySQL错误相同的问题:
您的变量$movieid
似乎未初始化,因此SQL语句失败并在最后一个括号处抛出错误。
也许您可以通过在构建SQL语句$e = ....
之前放置一些调试输出来确保该变量内部的内容并从那里开始。
答案 1 :(得分:0)
你可以在这行之前做echo $movieid;
:
$tags = $movie->getMovieCategoryDetails($movieid,$language);
确定,如果函数正在接收正确的id。
答案 2 :(得分:0)
如果您正在使用STRICT环境进行开发(并且您应该)并且不推荐使用PHP 5.5或更高版本的mysql_real_escape_string。因此,它们可能是由它返回的错误。您在Apache日志中提到的错误之前是否有错误?