Php 字符串将转换为数组并在查询中使用

Php 字符串将转换为数组并在查询中使用,php,mysql,sql,Php,Mysql,Sql,对不起我的英语 我认为我的问题很愚蠢,但我不知道怎么做。我已经将数据库中的字符串(u_like)插入到c completed(1 2 3)中,并且我需要使此行中的每个符号(数字)插入到值中,而不是在查询中插入值 if( isset($_GET["email"]) && !empty($_GET["email"]) ) { $conn = new mysqli("mysql.hostinger.ru", "***", "***", "u858836722_testk");

对不起我的英语

我认为我的问题很愚蠢,但我不知道怎么做。我已经将数据库中的字符串(u_like)插入到c completed(1 2 3)中,并且我需要使此行中的每个符号(数字)插入到值中,而不是在查询中插入值

if( isset($_GET["email"]) && !empty($_GET["email"]) ) {
     $conn = new mysqli("mysql.hostinger.ru", "***", "***", "u858836722_testk");
     $email=$_GET["email"];
     $email = stripslashes($email);
     $email = $conn->real_escape_string($email);  

    $check="SELECT u_liked FROM users WHERE u_id = '".$email."'";
    // 
    $rs1 = mysqli_query($conn,$check);
    $row = mysqli_fetch_assoc($rs1);

    $row = stripslashes($row['u_liked']);
    $row = $conn->real_escape_string($row);

// Don't work query
    $query="SELECT p_id, p_name, p_description, p_image_id, p_price, p_add  FROM products where p_id ='".$row."' ";

    $result = $conn->query($query);
    $outp = "";
   while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {$outp .= ",";}
    $outp .= '{"p_id":"'  . $rs["p_id"] . '",';
    $outp .= '"p_name":"'   . $rs["p_name"]        . '",';
    $outp .= '"p_description":"'   . $rs["p_description"]        . '",';
    $outp .= '"p_image_id":"'   . $rs["p_image_id"]        . '",';
    $outp .= '"p_price":"'. $rs["p_price"]     . '",';
    $outp .= '"p_add":"'. $rs["p_add"]     . '"}';
}
    $has_more=2;

  $outp ='{"has_more":'.$has_more.',"records":['.$outp.']}';
    $conn->close();
    echo($outp);    
}
但是当数据库中写入一个字符时,我得到

{"has_more":2,"records":[{"p_id":"3","p_name":"Готель: Кремінь","p_description":"Телефон: 05367 92300","p_image_id":"chicken_maharaja","p_price":"вулиця Ігоря Сердюка, 1, Кременчук, Полтавська область, 39605","p_add":"http://www.kreminhotel.com.ua/"}]}
这就是工作

更新 它起作用了

if( isset($_GET["email"]) && !empty($_GET["email"]) ) {
     $conn = new mysqli("mysql.hostinger.ru", "u858836722_testk", "80040163q", "u858836722_testk");
     $email=$_GET["email"];
     $email = stripslashes($email);
     $email = $conn->real_escape_string($email); 
    $check="SELECT u_liked FROM users WHERE u_id = '".$email."'";
    $rs1 = mysqli_query($conn,$check);
    $row = mysqli_fetch_assoc($rs1);    
    $row = explode(' ',$row['u_liked']);
    $row = array_map('intval',$row);


    $query="SELECT p_id, p_name, p_description, p_image_id, p_price, p_add  FROM products where p_id IN (".implode(',',$row).")";
    $result = $conn->query($query);
    $outp = "";
   while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {$outp .= ",";}
    $outp .= '{"p_id":"'  . $rs["p_id"] . '",';
    $outp .= '"p_name":"'   . $rs["p_name"]        . '",';
    $outp .= '"p_description":"'   . $rs["p_description"]        . '",';
    $outp .= '"p_image_id":"'   . $rs["p_image_id"]        . '",';
    $outp .= '"p_price":"'. $rs["p_price"]     . '",';
    $outp .= '"p_add":"'. $rs["p_add"]     . '"}';
}
    $has_more=2;

  $outp ='{"has_more":'.$has_more.',"records":['.$outp.']}';
    $conn->close();
    echo($outp);    
}

我希望这些不是您的真实凭证,如果是的话,请重置它们。
p\u id
在另一个查询中映射到哪个列?您甚至可以使用
join
s通过一个查询来实现这一点(你所做的更新对我来说毫无意义。你能告诉我你所说的单个字符是什么意思吗?你需要重置你的凭据,该更新无助于你网站的安全。@s.Oleg我已经删除了你的MySQL用户名和密码。因为你已经将它们发布到公共论坛,你应该立即更改你的MySQL用户名和密码。)希望这些不是您的真实凭据,如果是这样,请重置它们。
p\u id
在另一个查询中映射到哪个列?您甚至可以使用
join
s进行一次查询。我正在尝试编程:(你所做的更新对我来说毫无意义。你能说明你所说的单个字符是什么意思吗?你需要重置你的凭据,该更新无助于你的网站的安全。@s.Oleg我已经删除了你的MySQL用户名和密码。因为你已经将它们发布到公共论坛,你应该立即更改你的MySQL用户名和密码。)