Warning: Illegal string offset 'id_mol_comp' in

0

I'm having multiple errors

  

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

     

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

Referring 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 errors:

Thisisthemostextensivecode:

<?phpif(!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>";

                }
            }

?>
    
asked by anonymous 30.05.2018 / 17:14

1 answer

1

Try this:

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>";
    }
}
    
30.05.2018 / 20:01