Ver Mensaje Individual
  #14 (permalink)  
Antiguo 24/07/2009, 12:52
Avatar de pedroca
pedroca
 
Fecha de Ingreso: julio-2009
Mensajes: 97
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: insertar registro 8 veces

Cita:
Iniciado por El-FeNiX Ver Mensaje
Hola de nuevo, pedroca.

No entiendo muy bien lo que quieres hacer.

He "limpiado" el codigo porque antes me parececia muy enrevesado. Te recomiendo que cuando hagas operaciones en las bases de datos compruebes el error inmediatamente en lugar se usar tantos bloques if/else, ya que termina el codigo ilegible.

Esto se consigue haciendo un if usando el operador not (!) que lo que hace es dar al vuelta al resultado (si es true lo cambia a false y si es false lo cambia a true). Dicho asi parece compliado pero si lo lees como "Si no... esto ... haz esto"

Ejemplo:

if (! mysql_query($link,etc..) ) {
die ("Error en la consulta");
}

Que significa: Si el valor devuelto por la funcion mysql_query es negativo, entonces terminar la ejecucion del script con un mensaje de error.

Asi se puede decir que "te quitas el error de en medio", ya que si hay error envia el mensaje de error y se deja de ejecutar el codigo. Y en caso contrario sigue adelante.

Te pongo el codigo aplicando eso:

Código PHP:
<?php
/* declaracion de variables */
$base "TB";
$tabla "control";
$tabla1 "usuarios";
$dni $_POST["dni"];

if (!
$dni) {
    
/* Falta carnet */
    
die("<h2><CENTER>DEBE INTRODUCIR DATOS</CENTER></b></H2>");
}

if (!
$link mysql_connect("localhost","root","123456")) {
    
/* La conexion MySQL falló */
    
die("Imposible conectar con la base de datos");
}

/* Conexión correcta */
$sql "SELECT * FROM $tabla WHERE dni = '$dni' AND CURDATE() <= fecha";;
$res mysql_db_query($base$sql);
$rows mysql_num_rows($res);

if (!
$rows) {
    
/* no existe ningun cirum en la base de datos o han metido mal su carnet */
    
die("<h2><CENTER>SU CARNET NO VALIDO</CENTER></b></H2>");
}

if (
$rows >= 8) {
    
// Se ha exceido el limite de que solo haya 8 consultas en un dia
    
die("<h2><CENTER>LIMITE EXCEDIDO/CENTER></b></H2>");
}

/* introducir un código válido */

$sql "INSERT INTO $tabla1 (dni, fecha, hora) VALUES ('$dni', NOW() , CURTIME() )";        
/* se ejecuta la consulta */
if (!$res mysql_db_query($base ,$sql)) {
    
/* La conexion MySQL falló */
    
die("
    Error al ejecutar la consulta en la base de datos
    SQL: $sql<hr />
    <p>Error nº "
.mysql_errno()."</p>
    <p>MySQL dijo: "
.mysql_error()."</p>
    "
);
}
/* marcacion correcta de su carnet de identidad */

print "<h2><CENTER>CORRECTA</CENTER></b></H2>";
?>
Lo que me has pedido no lo entiendo muy bien, ¿esa letra es para mostrarla en pantalla o para insertar en la base de datos junto con el numero?

Saludos.

gracias lo voy a revisar querido amigo de lo ultimo es que se inserte en la BD como lo indique en el otro tema gracias nuevamente por tu tiempo