Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/07/2009, 14:27
Avatar de anf
anf
 
Fecha de Ingreso: junio-2009
Mensajes: 30
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: marcacion mediante DNI

El mensaje de error cuando ponen mal algun dato está localizado aquí:

Código PHP:
} else { /*han metido mal su carnet */ 
Que podría ser por ejemplo:

Código PHP:
} else { print "Error al introducir los datos, inténtelo de nuevo."; } 
O lo que tu quieras dependiendo de tu página.

En esta parte hay un pequeño error:

Código PHP:
$rows mysql_db_query("$base"$sql);
//    $rows = mysql_affected_rows(mysql_db_query("$base", $sql)); 
Cambialo por:

Código PHP:
$rows mysql_affected_rows(mysql_db_query($base$sql));
//    $rows = mysql_affected_rows(mysql_db_query("$base", $sql)); 
Y si quieres que solo se ejecute el código si ponen todos los datos, haz algo tan sencillo como:

Código PHP:
if ($v1 && $v2 && $v3) { /* si existe $v1, $v2 y $v3 */
/* hacemos las operaciones */
} else { print "Debes introducir todos los datos."; } 
No sé si he resuelto algo o parte de lo que preguntas, o quizá te haya liado un poco mas, ya nos cuentas por si alguien te puede responder mejor que yo.

De todas formas te recomiendo visitar videotutoriales punto com y bajarte el Curso de PHP y MySQL del fantástico Jesus Conde aka 'OutKast', aprenderás muchísimo simplemente viendo vídeos y practicando en tu servidor local.


Script completo:

Código PHP:
<?php
/* declaraciones de variables */
$base "ces";
$tabla_control "control";
$tabla_empleados "empleados";
$cirun $_POST["cirun"];
$v2 $_POST["fecha"]; /* esta variable sobra */
$v3 $_POST["hora"]; /* esta también */
/* puedes obtener medidas de tiempo con date();
busca en php.net acerca de date(); */

if ($cirun) {
    if (
$link mysql_connect("localhost","usuario","pass")) {
        
/* Conexión correcta */
        
$sql "SELECT * FROM $tabla_empleados WHERE cirun = '$cirun' ";
        
$rows mysql_affected_rows(mysql_db_query($base$sql));
        if (
$rows) {
            
/* ha introducido un código válido */
            
$sql "INSERT INTO $tabla_control (cirun, fecha, hora) 
            VALUES ('$cirun',' "
.date("Y-m-d h:i:s")." ',' ".date("h:i:s")." ')";
            
/* por eso dije que sobraban */

            /* ejecutamos la consulta */
            
mysql_db_query($base ,$sql);
            
/* si hay error hacemos debug */
            
if (mysql_errno()) {
                print 
"
                <p>Se ha producido un error</p>
                <p>Error en la consulta:</p>
                SQL: $sql<hr />
                <p>Error nº "
.mysql_errno()."</p>
                <p>MySQL dijo: "
.mysql_error()."</p>
                "
;
            }
        } else {
            
/* no existe ningun cirum en la base de datos o han metido mal su carnet */
            
print "Su carnet no es válido o no esta registrado.";
        }
        
/* cierre de la conexion */
        
mysql_close($link);
    } else {
        
/* La conexion MySQL falló */
        
die("Imposible conectar con la base de datos.");
    }
} else {
    
/* Falta $cirun */
    
print "Debe introducir su carnet.";
}
?>