选择所有条目,其中给定字符串是MySQL/PHP中特定列的子字符串
我想在SQL数据库中查询名称。假设某个表包含列“names”,有两个输入“johnsilva”和“davesilva”。我想做一个查询,从中获取所有名为“Silva”的输入,并以一种稍后可以将结果回显到HTML代码中的方式存储它们。以下是我到目前为止得到的(请记住,它不起作用,这就是我来这里问的原因:):选择所有条目,其中给定字符串是MySQL/PHP中特定列的子字符串,php,sql,Php,Sql,我想在SQL数据库中查询名称。假设某个表包含列“names”,有两个输入“johnsilva”和“davesilva”。我想做一个查询,从中获取所有名为“Silva”的输入,并以一种稍后可以将结果回显到HTML代码中的方式存储它们。以下是我到目前为止得到的(请记住,它不起作用,这就是我来这里问的原因:): 您需要根据需要在查询中进行一些更改 $query = "SELECT ID, email, fullname, permission FROM users WHERE name LI
您需要根据需要在查询中进行一些更改
$query = "SELECT ID, email, fullname, permission FROM users WHERE name LIKE '%".$data."%'";
根据评论
不要使用,而循环保持代码不变
if(mysqli_num_rows($result) > 0){
$row = mysqli_fetch_assoc($result));
$callbackJson = json_encode($row);
echo $callbackJson;
}
您想要的功能类似于
。更重要的是:学会使用参数
$query = "SELECT ID, email, fullname, permission FROM users WHERE name LIKE CONCAT('%', ?)";
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($stmt, "s", $data)
$result = mysqli_stmt_execute($conn, $query);
我认为您的示例代码和介绍完全解释了不同的事情
根据您的介绍,我认为您正在尝试获取所有同名搜索结果,然后以另一种不同的方式保存它们
如果这是您的观点,我们将有更好的方法来解决。您能举例说明您希望收到的输出吗?此外,您的介绍文本与您的查询不匹配。。这是误导。是的,我知道我的查询不希望我希望它这样做。如果我在while()
循环中搜索名称“Silva”,我希望在数组中获得名称“John Silva”和“Dave Silva”,一旦添加了like子句和合适的%通配符,如果您需要多个用户,则需要构建一个用户数组。然后需要对该数组进行编码。当前代码将只返回最后一个匹配行。你能扩展一下“不工作”吗?我的代码现在看起来像这样$names=array();$query=“从像“%$data%”这样的全名所在的用户中选择全名”;$result=mysqli\u查询($conn,$query);如果(mysqli_num_rows($result)>0){while($row=mysqli_fetch_assoc($result)){$names[]=$row;}$callbackJson=json_encode($names);echo$callbackJson=json_encode($names);echo$callbackJson;}
但是当我返回到Ajax时,我得到一个空的json文件这仍然不起作用,json是空的。你能检查一下这个查询的父项是否正确吗?我将不胜感激。您是否有任何条目可以满足查询,因为其他所有内容都是正确的。如果$data
是Silva
,您在数据库中是否有类似的条目。是,“Silva”是我数据库中的一个名称好吧,我们将尝试从双方获取它,只需尝试我编辑的代码。假设我在“名称”列中有一个名为“Stack”的条目。如果我只搜索“ack”,我想得到这个条目。我想将所有结果存储在一个json文件中,以便将其发送回ajax
$query = "SELECT ID, email, fullname, permission FROM users WHERE name LIKE CONCAT('%', ?)";
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($stmt, "s", $data)
$result = mysqli_stmt_execute($conn, $query);