ayuda con la actualizacion de una base de datos

Iniciado por enehy, 11 Diciembre 2009, 19:26 PM

0 Miembros y 1 Visitante están viendo este tema.

enehy

buenas tardes, estoy intentado actualizar una base de datos con el siguiente código:


<html>
<head>
<title>Ejemplo recogida de archivo</title>
<link rel="stylesheet" href="../estilo.css" type="text/css">
</head>

<body>
<center>
<p class="titulo"></p>
<br>

<?php

$conexion=mysql_connect("127.0.0.1", "programa","programa");
mysql_select_db("distribuidora",$conexion);

$nombre=$_POST["nombre"];
$apellidos=$_POST["apellidos"];
$dni=$_POST["dni"];
$fecha_nacimiento=$_POST["fecha_nacimiento"];
$categoria_laboral=$_POST["categoria_laboral"];
$domicilio=$_POST["domicilio"];
$telefono=$_POST["telefono"];

if ( ($nombre!=NULL) AND ($apellidos!=NULL) AND ($dni!=NULL) AND ($fecha_nacimiento!=NULL) AND
   ($categoria_laboral!=NULL) AND ($domicilio!=NULL) AND ($telefono!=NULL) )
   {
      
      $sql="SELECT dni FROM empleados WHERE dni='$dni' ";
      $result=mysql_query($sql, $conexion)or die (mysql_error());
      //comprobar si en nuevo dni existe en la base de datos
         if (mysql_num_rows( $result) >1)
         {
            echo "<script>history.back(alert(\"Error: el empleado ya existe\"))</script>";
            break;
         }
         else
         {
         $sql="UPDATE empleados SET dni='$dni' , nombre='$nombre' , apellidos='$apellidos', categoria_laboral='$categoria_laboral', domicilio='$domicilio', fecha_nacimiento='$fecha_nacimiento', telefono='$telefono' WHERE dni='$dni' ";
               $result=mysql_query($sql, $conexion);
            if($result)
            {
            header("Location: http://127.0.0.1/inicio_admin.html");
            exit;
            }
            else{ echo mysql_error($conexion) ;}
         }
      
   }


?>

</center>

</body>
</html>





Lo único que me sale es un página en blanco, alguien podría decirme en qué falla por favor??

otra cestión es la comprobación  de si el dni nuevo está en la base de datos, es correcto como lo estoy haciendo?

muchas gracias de antemano

[u]nsigned

La verdad que leer asi, e interpretar mentalmente php (puesto que no consco la estructura ni los datos que hay en tu BB.DD) quita un poco las ganas de responder, pero creo que el problema va por aca:

Código (php) [Seleccionar]
if (mysql_num_rows( $result) >1)

Citarotra cestión es la comprobación  de si el dni nuevo está en la base de datos, es correcto como lo estoy haciendo?

No, esta mal, deberia ser ' > 0', es decir, si el dni existe, mysql_num_rows devolvera (al menos) 1. Entonces si solo existen UN registro con es DNI ese IF es evaluado como false, y asi no se actualizara. Me explico?  ;D

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

enehy

La verdad es q tienes razon con lo de la claridad, no pense en como lo ponia, lo siento.

He probado la comprobación como me dijo pero si pongo >0 y lo que quiero actualizar es el dni del empleado q estoy actualizando me va a decir que ya existe, entonces no podré actualizarlo. no se si me explico.

en cuanto a lo de la BBDD, los campos que hay son las variables $nombre...$telefono.
las variables las paso desde un formulario html, y lo que haría este archivo.php sería ingresar todos los campos otra vez en el empleado correspondiente, aunq creo q si cambio el dni no lo haría con esta programacion no?

de todas formas intento modificar sin cambiar el dni y no lo hace, no se por que la verdad. espero q me podais seguir dando algunos consejillos.
muchas gracias m3g@ h@x0R