Foros del Web » Programando para Internet » PHP »

Dudas con Mysql y php

Estas en el tema de Dudas con Mysql y php en el foro de PHP en Foros del Web. Buenas. Tengo una consulta php que me muestra una tabla de mi BD. Tengo varios problemas. -En la tabla de mi BD, los espacios se ...
  #1 (permalink)  
Antiguo 18/12/2008, 02:25
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 5 meses
Puntos: 1
Dudas con Mysql y php

Buenas. Tengo una consulta php que me muestra una tabla de mi BD.
Tengo varios problemas.
-En la tabla de mi BD, los espacios se guardan como %20 y a la hora de hacer la consulta el php me muestra el %20 tal cual en vez de un espacio. Me gustaría saber como puedo solucionar esto.
-También me guarda de vez en cuando campos en blanco(lo cual no es problema porque guarda unas fechas) y me gustaría que al hacer la consulta, si el php ha encotrado campos en blanco en la consulta a la BD, no los muestre.
-En la base de datos también guardo la fecha en la que se insertó el comentario.
Me la guarda en forma de 14 dígitos consecutivos de esta forma 20081218085404 siendo el formato normal este 2008/12/18 08:54:04 . Asique me gustaria saber como imprimir la fecha de una forma "más elegante" que no sea con todos los dígitos apelotonados.

Alguien que tenga más conocimientos me puede dar su luz en este oscuro camino? XD

Ah! dejo el codigo de la consulta que va perfecto. Para que veais como hago la consulta y por si a alguien le pudiera servir :

Código PHP:
<?php
$conexion
=mysql_connect("localhost","nombre_usuario","clave_usuario"
  or  die(
"Problemas en la conexion");
mysql_select_db("base_de_datos",$conexion
  or  die(
"Problemas en la selección de la base de datos");
$registros=mysql_query("select TimePrint, nombre, mensaje from comentario",$conexion) or
  die(
"Problemas en el select:".mysql_error());
while (
$reg=mysql_fetch_array($registros))
{
  echo 
"Fecha:".$reg['TimePrint']."<br>";
  echo 
"Nick:".$reg['nombre']."<br>";
  echo 
"Comentario:".$reg['comentario']."<br>";
  switch (
$reg['nada']) {
    case 
1:echo "PHP";
           break;
    case 
2:echo "ASP";
           break;
    case 
3:echo "JSP";
           break;
  }
  echo 
"<br>";
  echo 
"<hr>";
}
mysql_close($conexion);
?>
  #2 (permalink)  
Antiguo 18/12/2008, 02:41
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Dudas con Mysql y php

No soy un experto, pero quizá te sirva de ayuda esto:

Para eliminar los campos en blanco en la introducción de la fecha usa la función trim(). Tienes que hacerlo de la siguiente forma, imaginate que tienes en la variable $fecha lo siguiente " 2008 / 18/ 12", pues con trim, haciendo lo siguiente, eliminarás los espacios en blanco.
Código PHP:
$fecha=trim($fecha); 
En cuanto a lo de guardar la fecha... El tipo de datos es "DATE", "DATETIME"?... en teoría cuando guardas con ese tipo de datos, aplica el solo el formato xxxx/xx/xx en date, y en datetime supongo que será xxxx/xx/xx xx:xx:xx (no lo se, nunca lo he probado).

Un saludo.
  #3 (permalink)  
Antiguo 18/12/2008, 03:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Dudas con Mysql y php

Hola aliza. Gracias por responder tan rápido.
Mira, cuando me introduce la fecha en la base de datos, no crea campos en blanco ni nada por el estilo. Todo lo contrario, lo hace todo con 14 dígitos consecutivos. Imaginate la fecha y hora de hoy 2008/12/18 10:07:00 . Pues eso me lo guarda en la base de datos como 20081218100700 y a la hora de recuperarlas me lo muestra tal cual: 20081218100700. Estoy usando datatime.
Supongo que al hacer echo a esa variable que me muestra la fecha y hora, se puede aplicar algún código o sentencia que me reorganice la fecha y hora, el tema es que no se cual es XD.
Donde si me crea espacios en blanco al guardalos en la base de datos es al agregar un comentario tipo "hola, que tal estas?". Esto me lo guardaría en la base de datos como "hola,%20que%20tal%20estas?" y al recuperarlo me muestra "hola,%20que%20tal%20estas?" tal cual en vez de "hola, que tal estas?". Asique básicamente esos son mis mayores problemas ahora mismo
  #4 (permalink)  
Antiguo 18/12/2008, 03:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dudas con Mysql y php

hola...

los %20 los decodificas usando urldecode

ya para el formato de tu fecha, con un conjunto de instrucciones substr bastaría, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 18/12/2008, 04:13
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Dudas con Mysql y php

Código PHP:
<?php 
$conexion
=mysql_connect("localhost","nombre_usuario","clave_usuario")  
  or  die(
"Problemas en la conexion"); 
mysql_select_db("base_de_datos",$conexion)  
  or  die(
"Problemas en la selección de la base de datos"); 
$registros=mysql_query("select TimePrint, nombre, mensaje from comentario",$conexion) or 
  die(
"Problemas en el select:".mysql_error()); 
while (
$reg=mysql_fetch_array($registros)) 

  echo 
"Fecha:".$fecha."<br>"
  echo 
"Nick:".$reg['nombre']."<br>"
  echo 
"Comentario:".$reg['comentario']."<br>"
  switch (
$reg['nada']) { 
    case 
1:echo "PHP"
           break; 
    case 
2:echo "ASP"
           break; 
    case 
3:echo "JSP"
           break; 
  } 
  echo 
"<br>"
  echo 
"<hr>"

mysql_close($conexion); 


$dia=substr($reg[TimePrint]);
   
$mes=substr($reg[TimePrint]);
   
$anio=substr($reg[TimePrint]);
   
$segundo=($reg[TimePrint]);
   
$minuto=($reg[TimePrint]);
   
$hora=($reg[TimePrint]);
   
$fecha=$anio."/".$mes."/".$dia"a las".$hora.":".$minuto.":".$segundo;
?>
Esto es lo que he probado sin resultados para lo de la fecha. Alguien me hecha una mano con el código?
  #6 (permalink)  
Antiguo 18/12/2008, 04:59
 
Fecha de Ingreso: noviembre-2008
Mensajes: 85
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Dudas con Mysql y php

Para las fechas crea un campo tipo TIMESTAMP predeterminado CURRENT_TIMESTAMP y te quedará con este formato: 2008-11-24 19:32:58
  #7 (permalink)  
Antiguo 18/12/2008, 06:46
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Dudas con Mysql y php

Estupendo urruju. No lo sabía eso
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 22:12.