hola a todos, estoy teniendo un problemilla a la hora de modificar los datos, me gustaria que alguien me eche una mano a ver si pueden
Aqui pongo las paginas,
PAGINA MODIFICAR_REG.PHP
Código:
<?php
//ESTE ES EL QUE SIRVE
include ("../includes/config.php");
include ("../includes/funciones.php");
?>
<table width="750" border="2" cellpadding="0" cellspacing="0">
<tr>
<td align="center">id</td>
<td align="center">Fecha de entrada</td>
<td align="center">Hora de entrada</td>
<td align="center">Fecha de salida</td>
<td align="center">Hora de salida</td>
<td align="center">Nombre</td>
<td align="center" >Turno</td>
<td align="center" >Accion</td>
</tr>
<?
//nos conectamos a mysql
$conexion = conectar ();
//consulta.
$sql = "SELECT `id`, DATE_FORMAT(fecha_ent, '%d/%m/%Y'), TIME_FORMAT(hora_ent, '%H:%m'), DATE_FORMAT(fecha_sal, '%d/%m/%Y'), TIME_FORMAT(hora_sal, '%H:%m'), `nombre`, `turno` AS `fecha_ent`,`hora_ent`, `fecha_sal`, `hora_sal` FROM `asistencia` ORDER BY fecha_ent ASC";
$res= mysql_query($sql) or die (mysql_error());
if( mysql_num_rows($res) >0){
//impresión de los datos.
while (list($id,$fecha_ent,$hora_ent,$fecha_sal,$hora_sal,$nombre,$turno) = mysql_fetch_array($res)) {
echo "<td>$id</td>\n";
echo "<td>$fecha_ent</td>\n";
echo "<td>$hora_ent</td>\n";
echo "<td>$fecha_sal</td>\n";
echo "<td>$hora_sal</td>\n";
echo "<td>$nombre</td>\n";
echo "<td>$turno</td>\n";
echo "<td><a href='editar_reg2.php?id=$id'>editar</a></td></tr>\n";
}
}else{
echo "<td colspan='6' align='center' >no se obtuvieron resultados</td><td><a href='nuevo_reg.php?nombre=$nombre'>añadir</a></td>";
}
mysql_close($conexion);
?>
</table>
EDITAR_REG2.PHP
<?php
include ("../includes/config.php");
include ("../includes/funciones.php");
//si la forma ha sido enviada editamos el registro.
if(isset($_POST['submit'])){
//nos conectamos a mysql
$conexion = conectar ();
/*$id=$_POST['id'];
$fecha_ent=$_POST['fecha_ent'];
//$fch=explode("-",$fecha_ent);
//$fecha_ent=$fch[2]."-".$fch[1]."-".$fch[0];
$hora_ent=$_POST['hora_ent'];
$fecha_sal=$_POST['fecha_sal'];
//$fch=explode("-",$fecha_sal);
//$fecha_sal=$fch[2]."-".$fch[1]."-".$fch[0];
$hora_sal=$_POST['hora_sal'];
$nombre=$_POST['nombre'];
$turno=$_POST['turno'];
*/
$sql = "UPDATE asistencia SET ";
$sql .= "id ='".$_POST['id']."',";
$sql .="fecha_ent ='".$_POST['fecha_ent']."',";
$sql .="hora_ent ='".$_POST['hora_ent']."',";
$sql .="fecha_sal ='".$_POST['fecha_sal']."',";
$sql .="hora_sal ='".$_POST['hora_sal']."',";
$sql .="nombre ='".$_POST['nombre']."',";
$sql .="turno ='".$_POST['turno']."',";
$sql .="fecha_sis =NOW()";
$sql .=" WHERE id =".$_POST['id'];
$res = mysql_query($sql) or die(mysql_error());
echo "Registro actualizado.<br><a href='asistencia.html'>regresar</a>";
mysql_close($conexion);
exit;
}
//si no hay id, no puede seguir.
if(empty($_POST['id'])){
header("Location: asistencia.html");
exit;
}
//nos conectamos a mysql
$conexion = conectar ();
//consulta para mostrar los datos.
/*
"SELECT `id`, DATE_FORMAT(fecha_ent, '%d/%m/%Y'), TIME_FORMAT(hora_ent, '%H:%m'), DATE_FORMAT(fecha_sal, '%d/%m/%Y'), TIME_FORMAT(hora_sal, '%H:%m'), `nombre`, `turno` AS `fecha_ent`,`hora_ent`, `fecha_sal`, `hora_sal` FROM `asistencia` ORDER BY fecha_ent ASC WHERE id=".$_GET['id'];
*/
$sql = "SELECT * FROM asistencia WHERE id=".$_POST['id'];
$res= mysql_query($sql) or die (mysql_error());
if( mysql_num_rows($res) >0){
//si hay resultados hacemos la forma.
?>
<form name="form1" method="POST" action="<? echo $_SERVER['PHP_SELF'];?>">
<table width="400" border="1" cellpadding="0" cellspacing="0">
<?
//impresión de los datos.
while ($fila = mysql_fetch_array($res)) {
?>
<tr>
<td><input name="id" type="hidden" id="id" value="<? echo $fila['id'];?>"><? echo $fila['id'];?></td>
</tr>
<tr>
<td>Fecha Entrada</td>
<td><input name="actividad" type="text" id="actividad" value="<? echo $fila['fecha_ent'];?>"></td>
</tr>
<tr>
<td>Hora de entrada</td>
<td><input name="fecha" type="text" id="fecha" value="<? echo $fila['hora_ent'];?>"></td>
</tr>
<tr>
<td>Fecha de salida</td>
<td><input name="web" type="text" id="web" value="<? echo $fila['fecha_sal'];?>"></td>
</tr>
<tr>
<td>Hora de salida</td>
<td><input name="web" type="text" id="web" value="<? echo $fila['hora_sal'];?>"></td>
</tr>
<tr>
<td>Nombre</td>
<td><input name="web" type="text" id="web" value="<? echo $fila['nombre'];?>"></td>
</tr>
<tr>
<td>Turno</td>
<td><input name="web" type="text" id="web" value="<? echo $fila['turno'];?>"></td>
</tr>
<tr>
<td> </td>
<td align="right"><input type="submit" name="submit" value="MODIFICAR REGISTRO"></td>
</tr>
</table>
</form>
<?
}
}else{
//no hay resultados, id malo o no existe.
echo "no se obtuvieron resultados";
}
mysql_close($conexion);
?>
Si lo ago asi no funciona, pq el header me lo devuelve "digamos" nulo, y yo pienso q esta bien, ahora bien si en el header lo pongo con get en vez de post, si va perfecto, aunque no me modifica los datos q es realmente lo q me gustaria preguntar y q me echarais una mano, gracias de antemano a todos. Un saludo
He envuelto tu código dentro de las etiquetas "code" para hacer más corto tu mensaje y facilitar la lectura.
¿Te aparece algún mensaje de error?
¿Tienes activadas las opciones para mostrar los errores de PHP? Si no sabes cómo hacerlo, tendrías que mencionar más detalles, como el sistema operativo en el que te encuentras, si PHP está instalado como módulo de Apache o como CGI, etc.
Saludos,
__________________
Servicios para proveedores de hosting. Desde marketing hasta soporte · Jaime.ws
saludos apolo, muchas gracias por tu respuesta, el paquete que utilizo es el xampp, no se si te suena, que ya viene con todo, creo que viene como modulo de apache aunque no me agas mucho caso. Utilizo el Windows XP.
lo que me pasa es q si lo pongo como $_post, se me salta a la pagina asistencia.html, que es la q yo le e puesto, pero si lo pongo como $_get si va, (yo siempre trabajo con $_post).
y bueno poniendolo como $_get, va bien lo unico es que tengo otro script para introducir datos y lo introduce perfecto, pero al modificarlos, se me cambian todo los datos, borrandose el nombre y turno, y las fechas y la hora a 0.
Otra cosa aparte, abra por ay un date_format y cosas asi creo, q es para poner la fecha en formato dd-mm-aaaa, habria otra forma de acerlo. Muchisimas gracias de veras.
Por cierto, como se activa lo de los errores en PHP y en mysql, me ha parecido curioso. Lo digo por si lo tengo desactivado, activarlo, que ayuda muchisimo.
Por cierto, como se activa lo de los errores en PHP y en mysql, me ha parecido curioso. Lo digo por si lo tengo desactivado, activarlo, que ayuda muchisimo.