尝试通过带有IN子句(收藏夹)的php从mysql表中获取数据


Trying to get data from mysql table via php with IN clause (favorites)

以下是我的表"User"的外观:

Name Password Favorites
Test Test     1 2 3 4

在我的表格"数据"中,我有

Comment ID
"Test"  2

我希望用户能够将评论保存到其收藏夹中,因此第一个表,我将所有收藏夹保存在一行中,这样表就不会太大。我试图通过内爆和IN条款把它们都抢回来。现在它似乎不起作用,我希望这里的人能给我一些关于如何克服这个问题的有用意见:)

$favoritenstring = ($GET_["favoritenstring"]);
$query = "SELECT * FROM $table_id WHERE ID in ('" . implode("','",$favoritenstring) . "')";

现在,我在上面的查询行中收到了这个错误:传递的参数无效

您必须首先从字符串中删除斜杠:

$string = stripslashes($favoritenstring);
$query = "SELECT * FROM $table_id WHERE ID in " .$string;

更改此。。。

来自

($GET_["favoritenstring"]);

($_GET["favoritenstring"]);

试试这个:

$query = "SELECT * FROM $table_id WHERE ID in ( ";
$myVars=explode($favoritenstring);
$numFavs=count(explode(' ', $favoritenstring));
for($i=0;$i<$numFavs;$i++)
{
    $query.=$myVars[$i];
    if($i<($numFavs-1))
    {
        $query.=", ";
    }
}
$query.=");";