Warning: Illegal string offset 'id_mol_comp' in

Asked

Viewed 330 times

0

I’m making multiple mistakes

Warning: Illegal string offset 'id_mol_comp' in C: wamp www fanamol carrinho.php on line 167

Notice: Uninitialized string offset: 0 in C: wamp www fanamol carrinho.php on line 167

Relating to these lines:

include ("db.php");
                foreach($_SESSION['itens'] as $produtos => $quantidade){
                    $select=$con->prepare("SELECT * from stock_comp WHERE id_mol_comp=?"); 
                    //$select->bindParam(1,$idproduto);
                    $select->execute();
                    //$fetch= $select->fetchAll();
                $id_mol_comp=$produtos["id_mol_comp"];
                $referencia=$produtos["referencia"];
                $preco=$produtos['preco'];
                    $precototal=$produtos["preco"]*$quantidade;

Here is a print of the bugs:

inserir a descrição da imagem aqui

This is the longest code:

<?php
if (!isset($_SESSION['itens'])){
    $_SESSION['itens']=array();          
}
            
           if(isset($_GET['add'])&& $_GET['add']=="carrinho") {
               $idproduto = $_GET['id'];
               if(!isset($_session['itens'][$idproduto])){
                  $_SESSION['itens'][$idproduto]=1;  
               }else{
                  $_SESSION['itens'][$idproduto]+=1; 
               }
           }
          var_dump($_SESSION['itens']);
            if (count($_SESSION['itens'])==0){
                echo'Carrinho vazio <br><a href="mol_compressao.php">Adicionar Itens</a>';
            }else{
                echo"
                 <h3>Carrinho de Compras</h3>
 <div align='center'>
      <div class='card mx-auto w-75'>
        <div class='container-fluid''>
            <div class='row align-items-end' style='height:40px;'>
                <div class='col-md-2' style='text-align: center'>REFERÊNCIA</div>
                <div class='col-md-3' style='text-align: center'>QUANTIDADE</div>
                <div class='col-md-2' style='text-align: center'>PREÇO UNITÁRIO</div>
                <div class='col-md-2' style='text-align: center'>PREÇO TOTAL</div>
            </div>
        </div> 
          <hr>
                    <div class='card-body' >
                        <div class='row align-items-end' style='height:0px;'>
                            <div class='col-md-10' style='text-align: center'>Total:</div> 
                            <div class='col-md-2' style='text-align: center'>ef</div>
                        </div>
                    </div>
        </div>
</div> 
";
                include ("db.php");
                foreach($_SESSION['itens'] as $produtos => $quantidade){
                    $select=$con->prepare("SELECT * from stock_comp WHERE id_mol_comp=?"); 
                    //$select->bindParam(1,$idproduto);
                    $select->execute();
                    //$fetch= $select->fetchAll();
                $id_mol_comp=$produtos["id_mol_comp"];
                $referencia=$produtos["referencia"];
                $preco=$produtos['preco'];
                    $precototal=$produtos["preco"]*$quantidade;
                    echo"
                        <div class='card-body'>
                        <div class='row align-items-center' style='height:0px;'>
                            <div class='col-md-2' style='text-align: center'>$referencia</div>
                            <div class='col-md-3' style='text-align: center'></div>
                            <div class='col-md-3' style='text-align: center'>$quantidade<input type='text' name='de2' size='1' ><i style='font-size:24px' class='fa'>&#xf147;</i><i style='font-size:24px' class='fa'>&#xf196;</i></div>
                            <div class='col-md-2' style='text-align: center'>$preco</div>
                            <div class='col-md-2' style='text-align: center'>$precototal</div>
                        </div>
                    </div> 
          <hr>";
                       
                }
            }
           
?>
  • You are trying to get values that are not set. Why commented bindParam? Var_dump $select->fetchAll()

  • @Mauroalexandre bind param and $fetch are commented because if it is not, the error appears : Fatal error: Call to Undefined method mysqli_stmt::bindParam()

1 answer

1

Try it this way:

foreach($_session['itens'] as $produtos => $quantidade){
    $select=$con->prepare("select * from stock_comp where id=:id");
    $select->bindparam(':id',$idproduto);
    $select->execute();
    while($results=$select->fetch(PDO::FETCH_ASSOC)){
        $id_mol_comp=$results['id_mol_comp'];
        $referencia=$results['referencia'];
        $preco=$results['preco'];
        $precototal=$results['preco']*$quantidade;
        echo "
            <div class='card-body'>
                <div class='row align-items-center' style='height:0px;'>
                    <div class='col-md-2' style='text-align: center'>$Referencia</div>
                    <div class='col-md-3' style='text-align: center'>$quantidade</div>
                    <div class='col-md-3' style='text-align: center'></div>
                    <div class='col-md-3' style='text-align: center'><input type='text' name='de2' size='1' ><i style='font-size:24px' class='fa'>&#xf147;</i><i style='font-size:24px' class='fa'>&#xf196;</i></div>
                    <div class='col-md-2' style='text-align: center'>$preco</div>
                    <div class='col-md-2' style='text-align: center'>$precototal</div>
                </div>
            </div> 
        <hr>";
    }
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.