繁体   English   中英

Select 给定字符串是 MySQL/PHP 中特定列的 substring 的所有条目

[英]Select all entries where a given string is a substring of a spesific column in MySQL/PHP

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

    $query = "SELECT ID, email, fullname, permission FROM users WHERE name LIKE '$data'";
$result = mysqli_query($conn, $query);

        if(mysqli_num_rows($result) > 0){

                while($row = mysqli_fetch_assoc($result)){

                    $userName = $row['fullname'];
                    $userHashedPermission = $row['permission'];
                    $ID = $row['ID'];
                    $userEmail = $row['email'];
                }

                if(password_verify('sim', $userHashedPermission)){
                    $userPermission='sim';
                }else{
                    $userPermission='nao';
                }

                $callbackObj->name = $userName;
                $callbackObj->permission = $userPermission;
                $callbackObj->Id = $ID;
                $callbackObj->email = $userEmail;

                $callbackJson = json_encode($callbackObj);
                echo $callbackJson;
                
        }else{
echo "something went wrong"
}

您想要的功能like . 更重要的是:学会使用参数

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

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

$query = "SELECT ID, email, fullname, permission FROM users WHERE name LIKE '%".$data."%'";

根据评论

不要使用while循环保持你的代码为

 if(mysqli_num_rows($result) > 0){                  
    $row = mysqli_fetch_assoc($result));                                
    $callbackJson = json_encode($row);              
    echo $callbackJson;             
 }

我认为您的示例代码和介绍完全解释了不同的事情。

根据您的介绍,我认为您正在尝试获取具有相同姓氏的所有搜索结果,然后以另一种不同的方式保存它们。

如果这是您的观点,我们将有更好的方法来解决它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM