Ir para conteúdo
Fórum Script Brasil
  • 0

Erro foreach() PHP


Victor Dias

Pergunta

Pessoal Boa Tarde! 

Se alguém puder me ajudar estou utilizando rodando um sisteminha PDV em wampserver utilizando PHP 7.0.33
funciona tudo certinho mais ao realizar a impressao do cupom fiscal ele não apresentar a descricao do produto.

segue abaixo o codigo que esta apresentando o erro 

<?php
                $tax_summary = array();
                foreach ($rows as $row) {
                    echo '<tr><td class="text-left">' . product_name($row->product_name) . '</td>';
                    echo '<td class="text-center">' . $this->tec->formatNumber($row->quantity) . '</td>';
                    echo '<td class="text-right">';

                    if ($inv->total_discount != 0) {
                        $price_with_discount = $this->tec->formatMoney($row->net_unit_price + $this->tec->formatDecimal($row->item_discount / $row->quantity));
                        $pr_tax = $row->tax_method ?
                        $this->tec->formatDecimal((($price_with_discount) * $row->tax) / 100) :
                        $this->tec->formatDecimal((($price_with_discount) * $row->tax) / (100 + $row->tax));
                        echo '<del>' . $this->tec->formatMoney($price_with_discount+$pr_tax) . '</del> ';
                    }

                    echo $this->tec->formatMoney($row->net_unit_price + ($row->item_tax / $row->quantity)) . '</td><td class="text-right">' . $this->tec->formatMoney($row->subtotal) . '</td></tr>';
                }
                ?>


 

Capturar.PNG

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
8 horas atrás, Victor Dias disse:

foreach ($rows as $row) {

Boa tarde!

A mensagem está dizendo que $rows não é um array

Certifique-se que $rows seja um array quando chegar a essa linha do script

Link para o comentário
Compartilhar em outros sites

  • 0
11 horas atrás, lowys disse:

Boa tarde!

A mensagem está dizendo que $rows não é um array

Certifique-se que $rows seja um array quando chegar a essa linha do script

Sinceramente eu não conseguir corrigir, consegue me ajudar para definir esse ($rows as $row) no array
para ele chegar correto ?  
ate no banco de dados eu já olhei mais não achei nada 

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tentei fazer o código funcionar aqui, mas eu não consegui.

Na listagem parcial tem a palavra "$this->", isso significa que o código faz parte de uma classe.

O que mais me intrigou foi $this->tec->formatNumber($row->quantity) - passei o dia todo consultando o Google, não sei como fazer essa proeza, o máximo que eu consegui foi $this->tec->formatNumber=$row->quantity 

A mensagem que eu recebi é que eu não consegui criar um método formatNumber para um objeto stdClass. Logo, a listagem que não foi publicado deve ser para lá de federal. Em seguida, o rascunho do que eu consegui para adaptar ao código parcial que foi publicado:

<?php
function product_name($texto){return $texto;}
class cupom {
    private $tec;
    public function __construct(\stdClass $tec){$this->tec=$tec;}
    public function formatNumber($value){$this->tec->{$value};}
    public function formatMoney($value){$this->tec->{$value};}
    public function formatDecimal($value){$this->tec->{$value};}
    public function teste(){
        $mysqli=new mysqli("localhost","root","","astudy");
        $query=$mysqli->query("select * from tbvendas,tbprodutos where cupom=666 and tbvendas.id_produto=tbprodutos.id");
        $jrows=$query->fetch_all(MYSQLI_ASSOC);
        $rows=json_decode(json_encode($jrows));
        if(!$rows){echo "problema";}
        $tax_summary = array();
        echo "<table><th>Descricao<th>Qtd<th>Preço<th>Subtotal";
        foreach ($rows as $row) {
        echo '<tr><td class="text-left">' . product_name($row->product_name) . '</td>';
        echo '<td class="text-center">' . $this->tec->formatNumber=$row->quantity . '</td>';
        echo '<td class="text-right">';
        if ($row->total_discount != 0) {
            $price_with_discount = $this->tec->formatMoney=$row->net_unit_price + 
                $this->tec->formatDecimal=$row->item_discount / $row->quantity;
            $pr_tax = $row->tax_method ?
            ($this->tec->formatDecimal=$price_with_discount * $row->tax / 100) :
            ($this->tec->formatDecimal=$price_with_discount * $row->tax / (100 + $row->tax));
            echo '<del>' . $this->tec->formatMoney=$price_with_discount+$pr_tax . '</del> ';}
        echo $this->tec->formatMoney=$row->net_unit_price + $row->item_tax / $row->quantity 
        .'</td><td class="text-right">' . $this->tec->formatMoney=$row->subtotal . 
        '</td></tr>';}}}
$cupom=new cupom(new stdClass);
echo $cupom->teste();

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...