Lucas Leite
Lucas Leite

Reputation: 187

php json_encode echoes true

I have a code to make a query over my db, and get back the response and put them in fields over my html. I want to send the response via JSON, then create the fields using that information. But when I echo my json_encode($json_output) I only get a [true].

If anyone can explain me why I'll be appreciated.

Javascritp code:

$($cadView).find('#cadForm').on('submit', function(e){

e.preventDefault();         

var str = $('#srBar').val();    

if(str == ""){

alert("Campo de busca vazio.");

}else{

$.post($('#cadForm').attr('action'), {q : str}, function(data){                     

alert(data);    


});
}

PHP code:

<?php

$q = $_POST['q'];

require('connect.php');

$i = 0;

$sql="SELECT `_nome`, `_endereco`, `_telefone`, `_imgstring`, `_dtAcesso`, `_descricao`, `_fkIdUser` FROM `tbvisitante` WHERE _nome = ?";
$stmt= $conn->prepare($sql);
$stmt->bind_param('s', $q);


if ($stmt){
    $stmt->execute();

    $stmt->bind_result($rName, $rEndereco, $rTelefone, $rImgString, $rDtAcesso, $rDescricao, $rFkIdUser);

    while ($row = $stmt->fetch()){    

        $json_output[] = $row;

        echo json_encode($json_output);

    }
}

mysqli_close($conn);    

?>

Upvotes: 1

Views: 183

Answers (1)

Devon Bessemer
Devon Bessemer

Reputation: 35357

http://php.net/manual/en/mysqli-stmt.fetch.php

mysqli_stmt::fetch returns null or a boolean. You are binding the result to variables, those are what you're supposed to use.

Otherwise you may look into get_result instead of fetch.

Upvotes: 1

Related Questions