Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Select no Banco com PDO

Olá amigos, estou tentando realizar um SELECT que busque 3 colunas no banco de dados, porem só estou conseguindo exibir o resultado de uma. Tentei da seguinte forma:

<?php
$username = usuario;
$password = 'Senha';
$idPagina = $_GET['plano'];


try {
  $conn = new PDO('mysql:host=localhost;dbname=hostclic_hostplan', $username, $password);
  $stmt = $conn->prepare('SELECT nome, preco, produto FROM lojavirtual WHERE id = ' .$idPagina);
  $stmt->execute(array('id' => $id));

  $result = $stmt->fetch();

  if ( count($result) ) { 
    foreach($result as $row) {
      echo($row);
    }   
  } else {
    echo "Nenhum resultado retornado.";
  }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
?>

E para exibir ele no HTML, preciso exibir separado da seguinte forma:

Nome: $row->nome; Preco: $row->preco; Produto: $row->produto;

Mas não consigo, alguem poderia me ajudar?

2 respostas

O que o "echo($row)" está retornando?

solução!

Altere a seguinte linha:

$result = $stmt->fetch();

para

 $result = $stmt->fetchAll();

E no foreach para acessar uma coluna específica você acessa assim:

$row['nome_da_coluna'];

Agora uma maneira mais fácil e pensando como uma lista de objetos em OO

$result = $stmt->fetchAll(PDO::FETCH_OBJ);

Que no foreach o acesso você pode realizar da seguinte maneira:

foreach($result as $obj) {
      echo $obj.nome.' - '.$obj.preco.' - '.$obj.produt.'<br>';
    }