sales list code I'm having problem to present the customer name of each sale and product name of each sale tbm! I do not know what I'm doing wrong
<?php
include_once("Sessao.php");
include_once("Valida.php");
include_once("Cabecalho.php");
include_once './Classes/Singleton.php';
include_once './Classes/Venda.php';
include_once './Classes/VendaDao.php';
// include_once 'Classes/Cliente.php';
// include_once 'Classes/ClienteDao.php';
// include_once 'Classes/Produto.php';
// include_once 'Classes/ProdutoDao.php';?>
<?php
if($_GET && $_GET["msg"] && $_GET["tpMsg"]){
?>
<div class="alert alert-<?php echo $_GET["tpMsg"] ?>" role="alert">
<strong>Atenção: </strong><?php echo $_GET["msg"]?>
</div>
<?php
}
?>
<div>
<a class="btn btn-success" href="FormVenda.php"> Novo Venda </a>
</div>
<hr>
<div>
<table class="table table-striped table-hover">
<thead>
<tr>
<th> Código </th>
<th> Data </th>
<th> Cliente </th>
<th> Produto </th>
<th> Quantidade </th>
<th> Preço </th>
<th> Total </th>
<th> Ações </th>
</tr>
</thead>
<tbody>
<?php
$vendaDao = new VendaDao();
$lista = $vendaDao->listar();
foreach ($lista as $venda) {
//$urlAlterar = "FormVenda.php?comando=U&codigo={$venda->getCodigo()}";
$urlExcluir = "FormVenda.php?comando=D&codigo={$venda->getCodigo()}";
$urlExcluir = "JavaScript:if(confirm('Deseja realmente excluir o venda?')) { document.location.href='{$urlExcluir}' }";
echo
"<tr>
<td> {$venda->getCodigo()} </td>
<td> {$venda->getData()} </td>
<td> {$venda->getCliente()->getNome()} </td>
<td> {$venda->getProduto()->getNome()} </td>
<td> {$venda->getQuantidade()} </td>
<td>
<a class='btn btn-danger' href=\"{$urlExcluir}\"> Excluir </a>
</td>
</tr>";
}
?>
</tbody>
</table>
</div>
<!-- <td> R$ {$venda->getProduto()->getPreco()} </td>
<td> R$ " . ($venda->getPreco() * $venda->getQuantidade()) . " </td> -->
<?php
class VendaDao {
private $pdo = null;
public function __construct(){
//pegar instancia e atribuir $pdo
$this->pdo = Singleton::getInstance()->getPDO();
}
public function salvar(Venda $venda){
//aqui dentro sempre vira um objeto
if( !$venda->getCodigo() ){
$sql = "INSERT INTO venda(data, quantidade, cliente, produto)
VALUES(:data, :quantidade, :cliente, :produto)";
$resultado = $this->pdo->prepare($sql);
} else {
$sql = "UPDATE venda SET data=:data, quantidade=:quantidade, cliente=:cliente,
produto=:produto WHERE codigo=:codigo";
$resultado = $this->pdo->prepare($sql);
$resultado->bindValue(":codigo",$venda->getCodigo(),PDO::PARAM_INT);
}
$resultado->bindValue(":data",$venda->getData(),PDO::PARAM_STR);
$resultado->bindValue(":quantidade",$venda->getQuantidade(),PDO::PARAM_INT);
$resultado->bindValue(":cliente",$venda->getCliente(),PDO::PARAM_INT);
$resultado->bindValue(":produto",$venda->getProduto(),PDO::PARAM_INT);
$resultado->execute();
}
public function excluir($codigo){
$sql = "DELETE FROM venda WHERE codigo=:codigo";
$resultado = $this->pdo->prepare($sql);
$resultado->bindValue(":codigo",$codigo,PDO::PARAM_INT);
$resultado->execute();
return $resultado->rowCount() ==1;
}
public function listar(){
$vendas = array();
$sql = "SELECT codigo, data, quantidade, cliente, produto, 'c.nome', 'p.nome' FROM venda as v
INNER JOIN cliente c ON 'c.codigoCli' = 'v.cliente'
INNER JOIN produto p ON 'p.codigoPro' = 'v.produto'
ORDER BY data";
$resultado = $this->pdo->prepare($sql);
$resultado->execute();
while( $vendaBD = $resultado->fetch(PDO::FETCH_OBJ) ){
$venda = new Venda();
$venda->setCodigo($vendaBD->codigo);
$venda->setData($vendaBD->data);
$venda->setQuantidade($vendaBD->quantidade);
$c = new Cliente();
$c->setCodigoCli($vendaBD->codigoCli);
$c->setNome($vendaBD->nome);
$venda->setCliente($c);
$p = new Produto();
$p->setCodigoPro($vendaBD->codigoPro);
$p->setNome($vendaBD->nome);
$venda->setProduto($p);
$vendas[] = $venda;
print_r($vendas);
}
return $vendas;
}
}
?>