1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

problemas al modificar registros en php y mysql

Tema en 'Programación y Diseño Web' iniciado por jovi_javi, 21 Dic 2007.

  1. jovi_javi

    jovi_javi Nuevo usuario

    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

    CODE, HTML o PHP Insertado:
    <?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>&nbsp;</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
     
  2.  
  3. Apolo

    Apolo Administrador Miembro del Staff Administrador CH

    Hola jovi_javi,

    Te doy la bienvenida a ComunidadHosting.

    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,
     
  4. jovi_javi

    jovi_javi Nuevo usuario

    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).

    if(empty($_POST['id'])){
    header("Location: asistencia.html");
    exit;
    }

    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.
     
  5. Apolo

    Apolo Administrador Miembro del Staff Administrador CH

    Hola,

    Puedes empezar por aquí:

    http://usuarios.lycos.es/josemifaq/caza_errores.html

    Básicamente se trata de estas dos directivas, aunque hay más:

    display_errors
    error_reporting

    Saludos,
     
  6. jovi_javi

    jovi_javi Nuevo usuario

    y con respecto al codigo?¿?, gracias
     
  7. Apolo

    Apolo Administrador Miembro del Staff Administrador CH

    Allí tendría que ayudarte un programador. :)

    Saludos,
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·