Show Value in Json + Mysql + PHP

0

I need to do this, but coming from the database .... I do not know how to do it

function decodificar($id)
{
if ($id == '1') {
    return json_encode(
        array(
            'id' => '1',
            'desc' => 'descricao do produto',
            'valor' => '49,90',
            'img' => 'img300x300.png',
            )
        );

} else if ($id == '2') {
    return json_encode(
        array(
            'id' => '2',
            'desc' => 'descricao do produto',
            'valor' => '94,90',
            'img' => 'img300x300.png',
            )
        );

}

I'm doing this but it's not right

$pdo = db_connect();
$listar = $pdo->prepare("SELECT curso_id, curso_descricao, curso_preco, curso_foto FROM cursos WHERE ativo = 1");
$listar->execute();

function decodificar($id)
{
while ($dados = $listar->fetchAll(PDO::FETCH_ASSOC))
{
if ($id == $dados['curso_id']) {
    return json_encode(
        array(
            'id' => $dados['curso_id'],
            'desc' => $dados['curso_descricao'],
            'valor' => $dados['curso_preco'],
            'img' => $dados['curso_foto'],
            )
        );

    }
} 
    
asked by anonymous 17.09.2018 / 17:45

2 answers

1

You can first feed the vector and then return or display the vector

Example:

function decodificar($id)
{
     $arrRetorno = array();
     while ($dados = $listar->fetch(PDO::FETCH_ASSOC))
        {
              if ($id == $dados['curso_id']) {
                  $arrRetorno[] = array(
                     'id' => $dados['curso_id'],
                     'desc' => $dados['curso_descricao'],
                     'valor' => $dados['curso_preco'],
                     'img' => $dados['curso_foto'],
                   );
               } //end of if
         } // end of while
      return json_encode($arrRetorno);
 } 

In this case it will just return.

If you want to display the return you can give echo .

Example replace:

return json_encode($arrRetorno);

by

echo json_encode($arrRetorno);
    
17.09.2018 / 18:29
0

The last item in the array can not contain a comma. I believe this is the mistake. Try to remove the comma at the end of 'img' => 'img300x300.png' and tell us what happens.

    
18.09.2018 / 17:15