Foros del Web » Programando para Internet » PHP »

¿Porque no me inserta la fecha en mysql correctamente?

Estas en el tema de ¿Porque no me inserta la fecha en mysql correctamente? en el foro de PHP en Foros del Web. buenas, estoy entretenido con el carrito de la compra y me sale todo perfecto, escepto la recogida de la fecha que no me la ingresa. ...
  #1 (permalink)  
Antiguo 29/05/2007, 05:43
 
Fecha de Ingreso: mayo-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 3
¿Porque no me inserta la fecha en mysql correctamente?

buenas, estoy entretenido con el carrito de la compra y me sale todo perfecto, escepto la recogida de la fecha que no me la ingresa.

El campo es de tipo date not null (0000-00-00) y los dos script ultimos del carrito son estos

Lo que uso para introducir la fecha exacta de acuerdo con esos campos es con gmdate("Y-m-d") pero curiosamente no me lo inserta (y en otars paginas si)

he probado a hacer un echo despues de la insercion y curiosamente lo mete correctamente como podeis ver

INSERT INTO pedido (precio_total, fecha, id_clie) VALUES (60.7, 2007-05-29, 51)

cuando me dirijo a myadmin para comprobarlo no me ha metido nada, esta todo en 0000-00-00.

He probado a poner campo char a ver que ingresa, y cuando inserto me da 1973 no se porque... Que lo he podido comprabar y lo que hace es restarme los numeros...

Aqui os dejo el codigo para que me podais ayudar


Código PHP:
<?
session_start
();
session_register("productos");
session_register("total");
session_register("cantidades");
session_register("suma");
session_register("fecha");

$_SESSION['id'] = $id;
$_SESSION['login'] = $login;



if(
$_SESSION['ok'] != 'correcto')
{
header("location: error.php");
}
else 
{


if (
$total==null$total=0;

if (
$_POST['cantidad']>0
    {
    
$productos[$total] = $_POST['id'];
    
$cantidades[$total] = $_POST['cantidad'];
    
$total++;
    }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Carrito de la compra.</title>
<style type="text/css">
<!--
.Estilo3 {    color: #0000FF;
    font-weight: bold;
    font-size: 14px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Estilo5 {
    color: #000000;
    font-size: 18px;
}
body {
    background-image: url(../../comp/fondo5.gif);
}
.Estilo6 {font-size: 17px}
.Estilo7 {color: #000000}
.Estilo8 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: bold;
}
-->
</style>
</head>

<body>
<p align="center" class="Estilo3 Estilo5">CARRITO DE LA COMPRA</p>
<p class="Estilo6">
  <!--DWLayoutTable-->
  <?
   
if ($total == 0
       {
?> 
       <br>
       <br>
       <span class="Estilo7"><font size="+1">El carrito está vacío.</font></span>
       <?  
   else
      {
      
?>
</p>
<table width="600" border="1" align="center">
      <tr>
          <td width="84" bgcolor="#FFC4C4">    <div align="center" class="Estilo7"><span class="Estilo8">CANTIDAD</span></div></td>
        <td width="320" bgcolor="#FFC4C4"><div align="center" class="Estilo7"><span class="Estilo8">NOMBRE DEL PRODUCTO</span></a></div></td>
        <td width="97" bgcolor="#FFC4C4">    <div align="center" class="Estilo7"><span class="Estilo8">PRECIO UNITARIO</span></div></td>
        <td width="71" bgcolor="#FFC4C4">    <div align="center" class="Estilo7"><span class="Estilo8">PRECIO TOTAL</span></div></td>
      </tr>
      <?
      
//CONECTAMOS CON LA BASE DE DATOS              
      
$bd "servtein";
      
$tabla "sub_servicios";
        
      
$c mysql_connect("localhost""root");
        
mysql_select_db($bd$c);
      
      
$fecha gmdate ("Y-m-d");
      
$suma 0;        
      for (
$i=0$i<$total$i++)
          {
          
$sentencia "SELECT * FROM $tabla WHERE id_sub = $productos[$i]";
          
$resultado mysql_query($sentencia,$c);
          
$registro mysql_fetch_row($resultado);
          
$dinero $registro[3]*$cantidades[$i];
          
$suma $suma $dinero;
           
?>
          <tr>
            <td width="84" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $cantidades[$i];?></span></div></td>
            <td width="320" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $registro[1];?></span></div></td>
            <td width="97" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $registro[3];?> &euro; </span></div></td>
            <td width="71" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $dinero;?> &euro; </span></div></td>
          </tr>
          <?
          

          
?>         
</table>
       <br>
       <table border=1 align="center">
          <tr>
            <td width="100" bgcolor="#FFC4C4"><div align="center" class="Estilo7"><span class="Estilo8">TOTAL COMPRAS </span></div></td>
            <td width="100" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $suma;?> &euro; </span></div></td>
          </tr>
       </table>
       <?
       
}
       
?>

       <p align="center"><a href="servicios.php">Seguir comprando</a> <a href="contratar3.php">Terminar compra </a></p>
       <p align="center"><a href="pagar.php"></a></p>
</body>
</html>
<? ?>
Código PHP:
<?
session_start
();
session_register("productos");
session_register("total");
session_register("cantidades");
session_register("suma");
session_register("fecha");

$_SESSION['id'] = $id;
$_SESSION['login'] = $login;


if (
$total==null$total=0;

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Carrito de la compra.</title>
<style type="text/css">
<!--
.Estilo3 {    color: #0000FF;
    font-weight: bold;
    font-size: 14px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Estilo5 {
    color: #FF0000;
    font-size: 18px;
}
.Estilo6 {color: #000000}
-->
</style>
</head>

<body>
<p align="center" class="Estilo3 Estilo5 Estilo6">CARRITO DE LA COMPRA</p>
  <!--DWLayoutTable-->
  <?
   
if ($total == 0
       {
?> 
       <br><br><font color="#0000FF" size="+1">El carrito está vacío, no se puede realizar la compra.</font>
       <?  
   else
      {
     
      
      echo 
$fecha;
      
$bd "servtein";
      
$tabla "sub_servicios";
        
      
$c mysql_connect("localhost""root");
        
mysql_select_db($bd$c);
      
        
$sentencia "INSERT INTO pedido (precio_total, fecha, id_clie) VALUES ($suma, $fecha, $id)";
      
$resultado mysql_query($sentencia$c);
      echo 
$sentencia."<br>";

      
$id_pedido mysql_insert_id(); 
  
      for (
$i=0$i<$total$i++)
          {
          
$sentencia "INSERT INTO lin_pedido (cantidad, id_pedido, id_sub) VALUES ($cantidades[$i], $id_pedido, $productos[$i])";
          echo 
$sentencia."<br>";
          
$resultado mysql_query($sentencia$c);
           } 
          
         }
          
?>         

       <p align="center"><a href="productos.php"><img src="img/productos.jpg" width="107" height="80" border="0"></a></p>
       <p align="center"><a href="pagar.php"><img src="img/carrito.jpg" alt="PAGAR EL CARRITO" width="106" height="82" border="0"></a></p>
</body>
</html>

Última edición por GoldFran; 29/05/2007 a las 06:43
  #2 (permalink)  
Antiguo 29/05/2007, 06:44
 
Fecha de Ingreso: noviembre-2003
Mensajes: 78
Antigüedad: 20 años, 5 meses
Puntos: 2
Re: ¿Porque no me inserta la fecha en mysql correctamente?

GoldFran, a primera vista me da la impresión de que el problema está en la consulta en sí: Los parámetros a insertar deberían estar envueltos en comillas.

La consulta debería verse al menos así:

INSERT INTO pedido (precio_total, fecha, id_clie) VALUES (60.7, '2007-05-29', 51)

Saludos!
__________________
Joel A. Chornik
ELSERVER.COM - WebHosting Profesional
  #3 (permalink)  
Antiguo 29/05/2007, 07:08
Avatar de Chudux  
Fecha de Ingreso: marzo-2006
Mensajes: 247
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: ¿Porque no me inserta la fecha en mysql correctamente?

mi estimado le faltan las comillas simples a las variables
Código PHP:
$sentencia "INSERT INTO pedido (precio_total, fecha, id_clie) VALUES ('$suma', '$fecha', '$id')"
  #4 (permalink)  
Antiguo 29/05/2007, 07:21
 
Fecha de Ingreso: mayo-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 3
Re: ¿Porque no me inserta la fecha en mysql correctamente?

gracias a los dos compañeros :) que haría yo sin este foro...

Menuda tontería con la que me quedo atascado :)

Tengo otra pregunta ya que estoy aqui. Cuando he terminado de comprar (osea, me ha insertado ya los datos en lin_pedido y pedido), como puedo hacer para que el carrito se resetee nuevamente.

Lo digo porque después de hacer la inserción, si quiero seguir comprando, tengo los productos anteriores en la cesta, así que imagino que de alguna manera tengo que "destruir" las sesiones del carrito
  #5 (permalink)  
Antiguo 29/05/2007, 07:30
 
Fecha de Ingreso: noviembre-2003
Mensajes: 78
Antigüedad: 20 años, 5 meses
Puntos: 2
Re: ¿Porque no me inserta la fecha en mysql correctamente?

Con un session_destroy(); podés eliminar la sesión completa pero no creo que eso sea lo ideal.

Simplemente redeclarando las variables que quieras las limpiás y listo.
Por ejemplo $productos = array();
(O $_SESSION['productos'])

Hay varias formas de hacer esto, podés usar la que más te guste :)

Saludos!
__________________
Joel A. Chornik
ELSERVER.COM - WebHosting Profesional
  #6 (permalink)  
Antiguo 29/05/2007, 07:34
 
Fecha de Ingreso: mayo-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 3
Re: ¿Porque no me inserta la fecha en mysql correctamente?

Cita:
Iniciado por joel_elserver Ver Mensaje
Con un session_destroy(); podés eliminar la sesión completa pero no creo que eso sea lo ideal.

Simplemente redeclarando las variables que quieras las limpiás y listo.
Por ejemplo $productos = array();
(O $_SESSION['productos'])

Hay varias formas de hacer esto, podés usar la que más te guste :)

Saludos!
no session_destroy() no, que si no la liamos :)

En cuanto a lo otro la verdad es que no me ha quedado claro
  #7 (permalink)  
Antiguo 30/05/2007, 11:16
 
Fecha de Ingreso: mayo-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 3
Re: ¿Porque no me inserta la fecha en mysql correctamente?

bueno al final con
session_unregister() puedo destruir la session que quiera :)
  #8 (permalink)  
Antiguo 30/05/2007, 12:37
 
Fecha de Ingreso: mayo-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 3
Re: ¿Porque no me inserta la fecha en mysql correctamente?

buenas muchachos, recurro otra vez a ustedes porque tengo otro error.

Cuando voy a insertar $dinero (que es un subtotal), me lo inserta correctamente en lin_pedido, pero para todos los prodcutos me inserta el mismo total no se porque... ¿Alguna sujerencia?

pagina 1
Código PHP:
<?
session_start
();
session_register("productos");
session_register("total");
session_register("cantidades");
session_register("suma");
session_register("dinero");
session_register("fecha");

$_SESSION['id'] = $id;
$_SESSION['login'] = $login;

  
$fecha gmdate ("Y-m-d");
if (
$total==null$total=0;

if (
$_POST['cantidad']>0
    {
    
$productos[$total] = $_POST['id'];
    
$cantidades[$total] = $_POST['cantidad'];
    
$total++;
    }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Carrito de la compra.</title>
<style type="text/css">
<!--
.Estilo3 {    color: #0000FF;
    font-weight: bold;
    font-size: 14px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Estilo5 {
    color: #000000;
    font-size: 18px;
}
body {
    background-image: url(../../comp/fondo5.gif);
}
.Estilo6 {font-size: 17px}
.Estilo7 {color: #000000}
.Estilo8 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: bold;
}
-->
</style>
</head>

<body>
<p align="center" class="Estilo3 Estilo5">CARRITO DE LA COMPRA</p>
<p class="Estilo6">
  <!--DWLayoutTable-->
  <?
   
if ($total == 0
       {
?> 
       <br>
       <br>
       <span class="Estilo7"><font size="+1">El carrito está vacío.</font></span>
       <?  
   else
      {
      
?>
</p>
<table width="600" border="1" align="center">
      <tr>
          <td width="84" bgcolor="#FFC4C4">    <div align="center" class="Estilo7"><span class="Estilo8">CANTIDAD</span></div></td>
        <td width="320" bgcolor="#FFC4C4"><div align="center" class="Estilo7"><span class="Estilo8">NOMBRE DEL PRODUCTO</span></a></div></td>
        <td width="97" bgcolor="#FFC4C4">    <div align="center" class="Estilo7"><span class="Estilo8">PRECIO UNITARIO</span></div></td>
        <td width="71" bgcolor="#FFC4C4">    <div align="center" class="Estilo7"><span class="Estilo8">PRECIO TOTAL</span></div></td>
      </tr>
      <?
      
//CONECTAMOS CON LA BASE DE DATOS              
      
$bd "servtein";
      
$tabla "sub_servicios";
        
      
$c mysql_connect("localhost""root");
        
mysql_select_db($bd$c);
      
    
      
$suma 0;        
      for (
$i=0$i<$total$i++)
          {
          
$sentencia "SELECT * FROM $tabla WHERE id_sub = $productos[$i]";
          
$resultado mysql_query($sentencia,$c);
          
$registro mysql_fetch_row($resultado);
          
$dinero $registro[3]*$cantidades[$i];
          
$suma $suma $dinero;
           
?>
          <tr>
            <td width="84" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $cantidades[$i];?></span></div></td>
            <td width="320" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $registro[1];?></span></div></td>
            <td width="97" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $registro[3];?> &euro; </span></div></td>
            <td width="71" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $dinero;?> &euro; </span></div></td>
          </tr>
          <?
          

          
?>         
</table>
       <br>
       <table border=1 align="center">
          <tr>
            <td width="100" bgcolor="#FFC4C4"><div align="center" class="Estilo7"><span class="Estilo8">TOTAL COMPRAS </span></div></td>
            <td width="100" bgcolor="#FFFFCC"><div align="center" class="Estilo7"><span class="Estilo8"><? echo $suma;?> &euro; </span></div></td>
          </tr>
       </table>
       <?
       
}
       
?>

       <p align="center"><a href="servicios.php">Seguir comprando</a> <a href="contratar3.php">Terminar compra </a></p>
       <p align="center"><a href="pagar.php"></a></p>
</body>
</html>
página 2
Código PHP:
<?
session_start
();
session_register("productos");
session_register("total");
session_register("cantidades");
session_register("suma");
session_register("dinero");
session_register("fecha");

echo 
$dinero;

$_SESSION['id'] = $id;
$_SESSION['login'] = $login;


if (
$total==null$total=0;

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Carrito de la compra.</title>
<style type="text/css">
<!--
.Estilo3 {    color: #0000FF;
    font-weight: bold;
    font-size: 14px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Estilo5 {
    color: #FF0000;
    font-size: 18px;
}
.Estilo6 {color: #000000}
body {
    background-image: url(../../comp/fondo5.gif);
}
.Estilo7 {
    color: #000000;
    font-size: 17px;
    font-weight: bold;
}
-->
</style>
</head>

<body>
<p align="center" class="Estilo3 Estilo5 Estilo6">CARRITO DE LA COMPRA</p>
<p align="left" class="Estilo7">Vd. ha finalizado la compra con &eacute;xito, si ha realizado la compra antes de las 20:00, un t&eacute;cnico se pondr&aacute; en contacto con Vd. para determinar la cita y ver la viabilidad de su pedido, as&iacute; como los pagos de este </p>
<!--DWLayoutTable-->
  <?
   
if ($total == 0
       {
?> 
       <br><br>
       <font size="+1"><span class="Estilo6">El carrito está vacío, no se puede realizar la compra</span></font><font color="#0000FF" size="+1">.</font>
       <?  
   else
      {
     
      
      
$bd "servtein";
              
      
$c mysql_connect("localhost""root");
        
mysql_select_db($bd$c);
      
        
$sentencia "INSERT INTO pedido (precio_total, fecha, id_clie) VALUES ('$suma', '$fecha', '$id')";
      
$resultado mysql_query($sentencia$c);
      echo 
$sentencia;
      
$id_pedido mysql_insert_id(); 
  
      for (
$i=0$i<$total$i++)
          {
          
$sentencia "INSERT INTO lin_pedido (cantidad, subtotal, id_pedido, id_sub) VALUES ('$cantidades[$i]', '$dinero', '$id_pedido', '$productos[$i]')";
          
$resultado mysql_query($sentencia$c);
           } 
          echo 
$sentencia;
         }
          
?>         

       <p align="center"><a href="productos.php"></a></p>
       <p align="center"><a href="pagar.php"></a></p>
</body>
</html>
<?
session_unregister
("productos");
session_unregister("total");
session_unregister("cantidades");
session_unregister("suma");
session_unregister("dinero");
session_unregister("fecha");
?>
  #9 (permalink)  
Antiguo 04/06/2007, 15:53
Avatar de rockobop  
Fecha de Ingreso: octubre-2004
Ubicación: Bolivia
Mensajes: 826
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: ¿Porque no me inserta la fecha en mysql correctamente?

hola a todos:

la pregunta es la siguiente

Código PHP:
.gmdate("Y-m-d-H:i:s"). 
dentro de una consulta, ok me funciona perfecto me ingresa la fecha, pero lo hace en hora de meridiano, no hora local de servidor ni de cliente¿¿¿¿?????

bueno algo estoy haciendo mal

espero me puedan ilustrar maestros

saludos

porque cuando hago
__________________
:pensando: Tú no necesitas un libro mágico, un gurú carismático, rituales primitivos. Sólo necesitas tus cinco sentidos.:adios:
  #10 (permalink)  
Antiguo 04/06/2007, 16:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: ¿Porque no me inserta la fecha en mysql correctamente?

De acuerdo con el manual gmdate, te da una fecha en base al meridiano, si quieres hacerlo en la hora del servidor es usando date, y si es en base al cliente, es mas complicado ya que tendrías que generar la fecha/hora via javascript y enviarla a PHP.

Saludos.
  #11 (permalink)  
Antiguo 04/06/2007, 19:31
Avatar de rockobop  
Fecha de Ingreso: octubre-2004
Ubicación: Bolivia
Mensajes: 826
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: ¿Porque no me inserta la fecha en mysql correctamente?

mm no solo quiero hacerlo en base a la hora del servidor

intente poniendo

Código PHP:
.gmdate("Y-m-d"). 
pero me incerta, 0000-00-00

q podra ser

saludos
__________________
:pensando: Tú no necesitas un libro mágico, un gurú carismático, rituales primitivos. Sólo necesitas tus cinco sentidos.:adios:
  #12 (permalink)  
Antiguo 07/06/2007, 08:14
 
Fecha de Ingreso: mayo-2007
Mensajes: 237
Antigüedad: 17 años
Puntos: 3
Re: ¿Porque no me inserta la fecha en mysql correctamente?

Cita:
Iniciado por rockobop Ver Mensaje
mm no solo quiero hacerlo en base a la hora del servidor

intente poniendo

Código PHP:
.gmdate("Y-m-d"). 
pero me incerta, 0000-00-00

q podra ser

saludos
ese gmdate lo tienes que meter en una variable, y cuando hagas el insert recuerda poner '$variable' con la comilla simple
  #13 (permalink)  
Antiguo 07/06/2007, 09:58
Avatar de rockobop  
Fecha de Ingreso: octubre-2004
Ubicación: Bolivia
Mensajes: 826
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: ¿Porque no me inserta la fecha en mysql correctamente?

vale gracias por el dato, goldfran


saludos
__________________
:pensando: Tú no necesitas un libro mágico, un gurú carismático, rituales primitivos. Sólo necesitas tus cinco sentidos.:adios:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.