Comunidad de diseño web y desarrollo en internet online

Fecha sql

Citar            
MensajeEscrito el 25 Dic 2010 10:09 am
Hola,
Se que hay mucha información por ahí, pero soy incapaz de conseguir cambiar la fecha de este script:

Código PHP :

function most()
   {
      $link=Conectar();
      $result=mysql_query("select * from noticias order by id_noticia desc limit 6 ",$link);
      while($row=mysql_fetch_array($result))
      echo"<table class='up'><tr><td></td></tr></table>
      <table class='cuerpo'>
      <tr>
         <td><h3>$row[titulo]</h3><div id='articulo'><p>$row[articulo]</p></div>$row[autor] | $row[fecha] | $row[categoria]</td>
      </tr>
      </table><table class='down'><tr><td></td></tr></table>";
   
   }

He probado bastantes fórmulas, pero de verdad que soy incapaz.
Un saludo y muchas gracias

Por mysker

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Dic 2010 01:39 pm
Lo único que parece una fecha en este script es un campo en la base de datos. Así que si quieres modificar las fechas, modifícalas en la base de datos.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Dic 2010 02:18 pm
seamos ordenados, tu problema se resuelve solo con una consulta sql, no necesito ver tu php ni menos aun tu html mezclado con php

usa la etiqueta [ mysql] para que tu codigo quede asi

Código MySQL :

SELECT campo1, campo2 FROM noticias ORDER BY id_noticia DESC LIMIT 6

fíjate en lo siguiente:
Por legibilidad y estándar las funciones propias de SQL ponlas en mayúsculas y las tablas y campos en minúsculas
NO USES * este solo se usa en el desarrollo de la consulta, jamas en producción, además asi podre saber que campo contiene la fecha


Existen funciones para convertir fechas a tiempo unix, lo que pides es relativamente facil, arregla tu pregunta y luego te muestro como hacerlo

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 25 Dic 2010 02:21 pm

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 26 Dic 2010 11:26 am
Muchas gracias, ante todo.
Olvidé poner parte del problema en mi primer post (si, soy un desastre).
En cuanto a la primera parte (mostrar) la sentencia sql sería así

Código MySQL :

SELECT titulo, articulo, autor, fecha, cagegoria FROM noticias ORDER BY id_noticia DESC LIMIT 6  

Se que esto se puede solucionar mediante una sentencia sql, el problema es que no se como relacionarla con el echo.
Creo que sabría hacerlo si solo sacara el campo fecha, pero tampoco estoy seguro, jajajaja

La otra parte (también importante que olvidé) es a la hora de grabar en la base de datos:

Código PHP :

<?php
   include("conectar.php"); 
   $link=Conectar(); 
   $titulo=$_GET['titulo'];
   $autor=$_GET['autor'];
   $fecha=$_GET['fecha'];
   $categoria=$_GET['categoria'];
   $text=$_GET['articulo'];
   $articulo = preg_replace('/\n/','<br/>',$text); 
   
   mysql_query("insert into noticias (titulo,autor,fecha,categoria,articulo) values ('$titulo','$autor','$fecha','$categoria','$articulo')",$link);  
   include("admin.php");
?> 

El problema es el mismo, intentar meter la fecha en un cuadro de introducción de texto en formato dd/mm/yyyy
y grabarlo en la base de datos como yyyy-mm-dd

Como os dije, he intentado diversas fórmulas, pero he sido incapaz.

Un saludo y muchísimas gracias de antemano

Por mysker

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Dic 2010 04:19 pm
entonces convertilo a ese formato tienes un separador que es / simplemente lo dividis con explode y lo rearmas incluso verificas de que sea una fecha valida

Código PHP :

<?php 
   include("conectar.php");  
   $link=Conectar();  
   $titulo=$_GET['titulo']; 
   $autor=$_GET['autor']; 
   $fecha=$_GET['fecha']; 
   $categoria=$_GET['categoria']; 
   $text=$_GET['articulo']; 
   $articulo = preg_replace('/\n/','<br/>',$text);  
    
//tomamos $fecha y verificamos
$array = explode('/',$fecha,3);
if(count($array) != 3)
{
   die("la fecha ingresada no tiene el formato adecuado");
}
$fecha = $array[2].'-' .$array[1].'-'. $array[0];
   mysql_query("insert into noticias (titulo,autor,fecha,categoria,articulo) values ('$titulo','$autor','$fecha','$categoria','$articulo')",$link);   
   include("admin.php"); 
?>

bueno es solo un ejemplo se podria mejorar mucho mas aun ya que incluso comprobarias de q cada parte sea correcta osea podrias con sentencias if comprobar de que el mes no tenga mas de 12 dias los años sean mayores a 0 y menores a no se te inventas algo pero bueno una cosa la fecha la ingresa el usuario que agrega la noticia? ya que si tiene que ser la fecha del server podrias usar la funcion date() que tiene php para que te retorne la fecha actual con el formato que deses

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Dic 2010 06:15 pm
lo de mostrar la fecha en el formato que quieras es facil http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

Código MySQL :

SELECT 
titulo, 
articulo, 
autor, 
DATE_FORMAT(fecha ,'%d/%m/%y %H:%i') fecha, -- 
categoria 
FROM noticias 
ORDER BY id_noticia 
DESC LIMIT 6  


o si quieres usar la función de PHP date basta con pasar la fecha a formato unix con UNIX_TIMESTAMP()

Código PHP :

   echo date('d/m/Y H:i', $fecha_unix); 



ATENTO PROBLEMA DE SEGURIDAD



Código PHP :

   $titulo=$_GET['titulo']; 
   $autor=$_GET['autor']; 
   $fecha=$_GET['fecha']; 
   $categoria=$_GET['categoria']; 
   $text=$_GET['articulo']; 
   $articulo = preg_replace('/\n/','<br/>',$text);  
    
   mysql_query("insert into noticias (titulo,autor,fecha,categoria,articulo) values ('$titulo','$autor','$fecha','$categoria','$articulo')",$link);   



Lee sobre SQL Inyection , te expones terriblemente al no validar los datos que entran, almenos debieras hacer lo siguiente:

Código PHP :

   $titulo=addslashes($_GET['titulo']); 
   $autor=addslashes($_GET['autor']); 
   $dia=intval($_GET['dia']); 
   $mes=intval($_GET['mes']); 
   $ano=intval($_GET['ano']); 
   $categoria=addslashes($_GET['categoria']); 
   $text=addslashes($_GET['articulo']); 
   $articulo = preg_replace('/\n/','<br/>',$text);  
    
   mysql_query("insert into noticias (titulo,autor,fecha,categoria,articulo) values ('$titulo','$autor','$ano-$mes-$dia','$categoria','$articulo')",$link);   

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.