Atualmente, estou trabalhando em um projeto JSON Api usando PHP e banco de dados mysql Eu tenho sido capaz de criar um post e obter a função com sucesso eu estou tentando implementar um recurso de filtro mas apenas capaz de recuperar um resultado mesmo quando mais de um do resultado tem nomes semelhantes Exemplo meu banco de dados contém "Chuck" e "Chuck Morris" quando eu procurar "chuck" eu quero ser capaz de recuperar os dois nomes, mas estou ficando apenas o resultado com o nome exato ou seja, "chuck" apenas um resultado aqui é meu código para a função de pesquisa
public function read_singleName() {
$sql_query = "SELECT * FROM ".$this->table_name . " WHERE name = ?";
$obj = $this->conn->prepare($sql_query);
$obj->bind_param("s", $this->name);
$obj->execute();
$data = $obj->get_result();
return $data->fetch_assoc();
}
Aqui está o código para exibir os resultados
if($_SERVER['REQUEST_METHOD'] === "GET"){
$artist_name = isset($_GET['name']) ? strval($_GET['name']) : "";
if(!empty($some_name)){
$some->name = $some_name;
$some_data = $some->read_singleName();
if(!empty($some_data)){
http_response_code(200);
echo json_encode(array(
"status" => 1,
"data" => $some_data
));
} else{
http_response_code(500);
echo json_encode(array(
"status" => 0,
"message" => "Name Not Found"
));
}
}
} else{
http_response_code(503);
echo "Access Denied";
echo json_encode(array(
"status" => 000,
"message" => "Failed"
));
}
Não sei o que $this->conn
é, mas eu acho que você deveria chamar fetch_assoc()
em um loop while até que não haja mais registros
while($record = $data->fetch_assoc()){
// do something with $record
}
Além disso, a consulta deve ser assim: SELECT * FROM ".$this->table_name . " WHERE name LIKE '%chuck%'