Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择所有条目,其中给定字符串是MySQL/PHP中特定列的子字符串_Php_Sql - Fatal编程技术网

选择所有条目,其中给定字符串是MySQL/PHP中特定列的子字符串

选择所有条目,其中给定字符串是MySQL/PHP中特定列的子字符串,php,sql,Php,Sql,我想在SQL数据库中查询名称。假设某个表包含列“names”,有两个输入“johnsilva”和“davesilva”。我想做一个查询,从中获取所有名为“Silva”的输入,并以一种稍后可以将结果回显到HTML代码中的方式存储它们。以下是我到目前为止得到的(请记住,它不起作用,这就是我来这里问的原因:): 您需要根据需要在查询中进行一些更改 $query = "SELECT ID, email, fullname, permission FROM users WHERE name LI

我想在SQL数据库中查询名称。假设某个表包含列“names”,有两个输入“johnsilva”和“davesilva”。我想做一个查询,从中获取所有名为“Silva”的输入,并以一种稍后可以将结果回显到HTML代码中的方式存储它们。以下是我到目前为止得到的(请记住,它不起作用,这就是我来这里问的原因:):


您需要根据需要在查询中进行一些更改

$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);