Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/11/2006, 11:11
Avatar de holahola
holahola
 
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 21 años, 6 meses
Puntos: 1
Supongo que esto tendría una solución con sólo comandos sql, pero como no se me ocurre como, lo he solucionado con un script php (quizás el moderador deba mover este hilo al foro de php).

Mi tabla era:

Código PHP:
`id` int(5) unsigned NOT NULL auto_increment,
 `
nombre` varchar(50) character set utf8 default NULL,
 `
fecha` varchar(10) NOT NULL, 
Le he añadido un nuevo campo: "fecha1" con tipo date.

Luego le he pasado el siguiente script php:
Código PHP:
<?php
// Conexion, seleccion de base de datos
$enlace = mysql_connect('localhost', 'pepe', 'pepe')
   or die(
'No pudo conectarse : ' . mysql_error());
echo 
'Conexión establecida<br>';
mysql_select_db('dbangel') or die('No pudo seleccionarse la BD.');

// Realizar una consulta SQL
echo '<br>Listado de la tabla, antes de modificar';
$ssql  = 'SELECT * FROM departamentos';
$resultado = mysql_query($ssql) or die('La consulta fall&oacute;: ' . mysql_error());

echo 
"<table>";
while (
$row = mysql_fetch_array($resultado)) {
   echo 
"<tr>";
       echo 
"<td>$row[id]</td>";
       echo 
"<td>$row[nombre]</td>";
       echo 
"<td>$row[fecha]</td>";
       echo 
"<td>$row[fecha1]</td>";
   echo 
"</tr>";

   
$dia=substr($row[fecha],0,2);
   
$mes=substr($row[fecha],3,2);
   
$anio=substr($row[fecha],6,4);
   
$fecha=$anio."-".$mes."-".$dia;
   
$id=$row[id];

   
// Realizar un update SQL a la fila en curso
   
$ssql  = 'UPDATE departamentos SET fecha1 = "'.$fecha.'" WHERE id='.$id.' ';
   
mysql_query($ssql) or die('La consulta fall&oacute;: ' . mysql_error());
}
echo 
"</table>\n";
mysql_free_result($resultado);

// Realizar una consulta SQL
echo '<br>Listado de la tabla, despues de modificar';
$ssql  = 'SELECT * FROM departamentos';
$resultado = mysql_query($ssql) or die('La consulta fall&oacute;: ' . mysql_error());

// Impresion de resultados en HTML
echo "<table>";
while (
$row = mysql_fetch_array($resultado)) {
   echo 
"<tr>";
       echo 
"<td>$row[id]</td>";
       echo 
"<td>$row[nombre]</td>";
       echo 
"<td>$row[fecha]</td>";
       echo 
"<td>$row[fecha1]</td>";
   echo 
"</tr>";
}
echo 
"</table>";
mysql_free_result($resultado);

// Cerrar la conexion
echo '<br>Cierre de la conexión';
mysql_close($enlace);
?>
El script lo que hace es, primero lista la tabla, fila a fila y al mismo tiempo la va modificando. Luego arranca otro bucle para mostrar como queda la tabla, ya modificada.


Lo último que queda, es borrar el antiguo campo de "fecha" y renombrar el "fecha1" a fecha.

Un saludo.