Compra não armazena na tabela SQL

,

Possuo um código em php que recebe os produtos previamente adicionados no carrinho de compras e os armazena no banco de dados. O pedido é criado corretamente na tabela pedidos mas os produtos não são armazenados na tabela pedido_item. Alguém sabe onde pode estar o erro?.

<?php
    include ('conecta.php');
    session_start();
?>

<?php

$data = date("d/m/y");
$hora = date ("h:i:s A");

$user = $_SESSION['minhasessao']['usu_id'];
mysql_query ("INSERT INTO pedido (fk_usu_cod, ped_hora, ped_data) values ('$user','$hora','$data')");
$pedido = mysql_query ("SELECT * FROM pedido WHERE ped_hora='$hora' and ped_data='$data'");

    while ($linha = mysql_fetch_array($pedido)){
            $id_pedido = $linha ['ped_cod'];
    $meucarrinho=$_SESSION['carrinho'];
    if(isset($meucarrinho)){
        $total=0;
        for($i=0; $i<count($meucarrinho);$i++){ 

                $prod_cod = @$meucarrinho[$i]['id'];
                $prod_qtd = @$meucarrinho[$i]['quantidade'];
                $subtotal=@$meucarrinho[$i]['preco']*@$meucarrinho[$i]['quantidade']; 
                mysql_query ("INSERT INTO pedido_item (prod_cod, fk_ped_cod, prod_qtd, prod_subtotal) values('$prod_cod','$id_pedido','$prod_qtd','$subtotal')");
                
                $total=$total+$subtotal;

            }
        }
    } 
?>
<?php
    mysql_query ("UPDATE pedido SET ped_valor='$total' WHERE ped_hora='$hora' and ped_data='$data'");
?>
<html>
        <head>
            <meta charset="utf-8"/>
            <meta http-equiv="refresh" content="3; url=index.php">
        </head>
       <body>
           <script>alert('Pedido gerado com sucesso.'); </script>
            <img src="../../imagens/icones/carregando.gif" style="width:50px; height: 50px; margin-top: 20%; margin-left:45%;"/>
        </body>
    </html>
<head>

vamos la

http://php.net/manual/en/function.mysql-query.php

verifique o que o mysql_query retorna e se nao for TRUE, mostre o erro do banco de dados

agora por favor estamos em 2016: use mysqli e use prepared statement. nao concatene strings pra gerar sql. é extremamente inseguro ( ex: sql injection )