Php 字符串将转换为数组并在查询中使用
对不起我的英语 我认为我的问题很愚蠢,但我不知道怎么做。我已经将数据库中的字符串(u_like)插入到c completed(1 2 3)中,并且我需要使此行中的每个符号(数字)插入到值中,而不是在查询中插入值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");
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用户名和密码。)