2013-12-20 51 views
1

我在我的Smarty的脚本工作,我面临着一些问题,我的新的PHP代码..的foreach与SQL SELECT越来越阵列

我只需要隐藏基于IP观看了观众的影片,我尝试这个..我得到$ v_watched =数组!

预先感谢

+1

这对我看到的代码有意义。你在期待什么? –

+0

如果它的数组,请尝试'AND vid_id NOT IN(“.implode(',',$ v_watched)。”)“; –

+0

SELECT vid_id FROM videos WHERE vid_id NOT IN()AND vid_id NOT IN()AND vid_id NOT IN ()AND vid_id NOT IN()AND vid_id NOT IN()AND vid_id NOT IN()AND vid_id NOT IN()AND vid_id NOT IN()AND vid_id NOT IN()AND vid_id!= 112635 ORDER BY posted DESC LIMIT 0, 5:你的SQL语法错误;查看与你的MySQL服务器版本相对应的手册,在正确的语法附近使用')AND vid_id NOT IN()AND vid_id NOT IN()AND vid_id NOT IN()AND vid_id NOT'at line 1 – user3121348

回答

0

$result_videos_watched是一个2维阵列。第一维是结果的行,第二维是列。当你这样做:

foreach ($result_videos_watched as $vid_id_watched){ 

$vid_id_watched是结果行之一,因此它的列的一个阵列。当你然后做:

$videos_watched[] = $vid_id_watched; 

你设定的$videos_watched的新元素数组。所以videos_watched成为一个二维数组(它只是$result_videos_watched的副本)。我想你想要做的是:

$videos_watched[] = $vid_id_watched['vid_id']; 

作为一个建议,而不是让你的新的查询有一系列的vid_id !=测试,使用vid_id NOT IN (...)。我希望大多数SQL引擎能够更好地进行优化。

+0

太棒了,这解决了我的问题。 谢谢你:) – user3121348