Выберите все записи, где данная строка является подстрокой столбца spesifi c в MySQL / PHP. - PullRequest
1 голос
/ 12 июля 2020

Я хочу запросить имя в своей SQL базе данных. Скажем, некая таблица содержит столбец «имена» и имеет два входа «Джон Сильва» и «Дэйв Сильва». Я хочу сделать запрос, в котором я получаю все входные данные с именем «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"
}

Ответы [ 3 ]

1 голос
/ 12 июля 2020

Требуемая функциональность: 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);
0 голосов
/ 12 июля 2020

Я думаю, что ваш пример кода и введение полностью объясняют разные вещи.

Исходя из вашего вступления, я думаю, вы пытаетесь получить все результаты поиска с одной и той же фамилией, а затем сохранить их другим способом.

Если это ваша точка зрения, у нас будет лучший способ разобраться в этом.

0 голосов
/ 12 июля 2020

Вам необходимо внести некоторые изменения в свой запрос как

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

Согласно комментариям

Не используйте while l oop сохраните свой код как

 if(mysqli_num_rows($result) > 0){                  
    $row = mysqli_fetch_assoc($result));                                
    $callbackJson = json_encode($row);              
    echo $callbackJson;             
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...