RDP 0 Denunciar post Postado Novembro 3, 2010 Boa Noite!! Bom pessoal sou novo na area de informática e estou tendo um probleminha, se alguém puder me ajudar. fiz um SELECT para exibir os dados na página Na codificação da página, ele faz a busca normalmente porém só começa a ser impresso apartir do 3º item, achei que fosse algum erro na instrução SQL, então testei no phpMyAdmin a instrução e lá são exibidos todos. <?php $id_ped = $_GET['id_ped']; $conexao = new mysqli("localhost", "root", "", "supermercado"); $query = "SELECT p.*, c.*, a.* FROM produtos p, carrinho c, pedidos_compra a WHERE a.carrinho_id = c.id_car AND c.produto_id = p.id_prod AND a.id_ped = '$id_ped'"; $res = $conexao->query($query); while($linha = $res->fetch_object()): echo $linha->nome_prod."<br>"; echo $linha->qtd_vendido."<br>"; echo number_format($linha->preco_prod,2,',','.')."<br>"; $subtotal = $linha->preco_prod * $linha->qtd_vendido; echo number_format($subtotal,2,',','.')."<br>"; endwhile; echo "Número da Nota Fiscal: ".$linha->boleto_ped; ?> Bem simples o código, não consigo entender pq no loop ele começa imprimir apartir do 3º item. lembrando qdo testei no phpMyAdmin a instrução SQL, lá foram exibidos todos os dados conforme a instrução. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 4, 2010 Altere aqui: $query = "SELECT p.*, c.*, a.* FROM produtos p, carrinho c, pedidos_compra a WHERE a.carrinho_id = c.id_car AND c.produto_id = p.id_prod AND a.id_ped = '$id_ped'"; Para: $query = "SELECT * FROM carrinho c, produtos p, pedidos_compra a WHERE a.carrinho_id = c.id_car AND c.produto_id = p.id_prod AND a.id_ped = '$id_ped'"; Só que não estou entendendo como isto entra num loop, pois deveria retornar um registro só pela forma com que a query é feita... O que exatamente está tentando fazer? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 4, 2010 seguinte: $res = $conexao->query($query); echo 'Número de registros: '.$res->num_rows; deve bater com oque lhe foi informado rodando a query diretamente no banco. Rick, ele ta enviando o id_ped, então é razoável que um pedido possua vários registros (produtos). O código que você rodou, foi exatamente oque postou acima ? pq veja que se você fizer antes: $gasta = $res->fetch_object();//esse fetch vai queimar uma linha do resultado while($linha = $res->fetch_object()): você vai 'perder' linhas no loop. Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Novembro 4, 2010 Bom dia! isso mesmo William Bruno, um pedido possui vários registros de produtos, o código usado é exatamnete o postado. Como disse testei a query no phpMyAdmin e lá retornou todos os resultados conforme o id_ped passado. Fiz uma contagem dos registros, nela são buscados exatamente a qtd de registros que se encontram no banco de dados, porém no loop não são impressos todos. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 4, 2010 só consigo pensar em linhas nulas $i = 1; while($linha = $res->fetch_object()) { echo $i; echo $linha->nome_prod.'<br />'; echo $linha->qtd_vendido.'<br />'; echo number_format($linha->preco_prod,2,',','.').'<br />'; $subtotal = $linha->preco_prod * $linha->qtd_vendido; echo number_format($subtotal,2,',','.').'<br />'; $i++; }se aparecer algum $i sem os respectivos dados abaixo, já sabe... Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Novembro 4, 2010 William Bruno - acontece exatamente o que você falou, apareceream $i sem dados. Como eu estudo php "por conta propria", pois não consta no curriculo do curso que estou fazendo. teria como dar uma explicação rápida de como funciona essas LINHAS NULAS? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 4, 2010 não é 'nada demais'. vai lá no banco, terão registros sem dados. em alguma das tabelas do relacionamento. provavelmente na TABLE `produto`. Compartilhar este post Link para o post Compartilhar em outros sites
RDP 0 Denunciar post Postado Novembro 4, 2010 Isso msm, foram deletados produtos do Banco que estavam relacionados com a TABLE 'carrinho'. Fazendo novo teste aqui. "fiz uma nova compra". funcionando Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites