Foros del Web » Programando para Internet » PHP »

Eliminar registro, pero comprobar antes si existe o no dicho registro

Estas en el tema de Eliminar registro, pero comprobar antes si existe o no dicho registro en el foro de PHP en Foros del Web. Buenas tardes. Soy prácticamente nuevo en progarmación PHP y MySQL, mis disculpas si esta consulta no está en el sitio (área, subforo, etc.) indicado, pero ...
  #1 (permalink)  
Antiguo 16/02/2010, 13:29
 
Fecha de Ingreso: febrero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Eliminar registro, pero comprobar antes si existe o no dicho registro

Buenas tardes.

Soy prácticamente nuevo en progarmación PHP y MySQL, mis disculpas si esta consulta no está en el sitio (área, subforo, etc.) indicado, pero igualmente, les agradezco a aquellos que me puedan prestar su ayuda...

Estoy creando un sistema para la gestión de pagos de contribuyentes; los contribuyentes, internamente, en este ente de gestión, se manejan por "patente", el cual es la clave principal, dato único para cada contribuyente.

Lo que deseo hacer es lo siguiente:
  1. El operador ingresa el número de patente
  2. ]El sistema busca si existe dicha patente en la base de datos
  3. Si sí existe, borra dicho registro y le muestra el mensaje al usuario; si no existe, le dice que no se encuentra ese registro en la base de datos

Lo estoy haciendo de la siguiente manera:

Código PHP:
<?php
$link 
mysql_connect("localhost""root") or die ("Error en la Base de Datos");
$bd=mysql_select_db("sedematdb",$link) or die ("Verifique la Base de Datos");
$Patente_vab=$_POST["Patente"];
if (
$Patente_vab!="" and is_numeric($Patente_vab))
{
    
$sql=mysql_query("SELECT FROM `datos` WHERE Patente='$Patente_vab'",$link);
    if (
mysql_num_rows($sql)>0)
    {
        
$borrar=mysql_query("DELETE FROM `datos` WHERE Patente='$Patente_vab'",$link);
        echo 
"<b>Hemos eliminado el contribuyente con la patente: $Patente_vab.</b>";
    }
    else
    {
        echo 
"<b>No existe ese número de patente en nuestra base de datos. Inténtalo de nuevo.</b>\n";
    }
}
else
{
    echo 
"<b>Error:</b> ¡Debes ingresar un número de patente!\n";
}
?>
Con el método POST me traigo el número de patente, lo convierto a una variable, valido si el usuario ingresó un dato, y que éste sea numérico. Una vez que ya estoy dentro de esa condición (sí ingresó un dato, y es numérico), realizo un SELECT para traer aquel registro que coincida con mi número de patente con la cláusula WHERE. Tengo entendido que mysql_num_rows permite obtener el número de filas, si éste es mayor que 0, es decir que existe al menos un resultado coincidente, y por lo tanto, el registro existe, entonces debería ejecutar la consulta DELETE, borrar los registros y mostrarle el mensaje al usuario, si no es mayor que cero, es decir, es 0, entonces, obviamente, no existe dicho registro y debería mostrar el ELSE.

De tanto estudiar, leer, investigar, buscar en Internet por horas y horas, he llegado a la conclusión que en el párrafo anterior les indico. Sin embargo, esto no sale como debería...

Mis problemas son:
  1. No borra ningún registro, así haya existencia
  2. Me muestra el siguiente error:
    Código:
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\php\contribuyentes_eliminar.php on line 8
    
  3. Siempre se va al ELSE, exista o no coincidencia

Estoy trabajando en localhost con la aplicación WAMPSERVER, la cual, realmente, me gusta bastante. Mi sistema operativo es Windows 7 Ultimate, tengo privilegios de administrador. Estos datos se los doy por si les sirve de algo.

Bueno, me disculpan lo largo de mi consulta, pero sé que de ésta manera les ofrezco la mayor cantidad de datos para que puedan ofrecerme la solución más apropiada.

Muchas gracias de antemano.

Saludos!
  #2 (permalink)  
Antiguo 16/02/2010, 13:35
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Respuesta: Eliminar registro, pero comprobar antes si existe o no dicho registro

en:
Código PHP:
$sql=mysql_query("SELECT FROM `datos` WHERE Patente='$Patente_vab'",$link); 
te falta el *....

Código PHP:
$sql=mysql_query("SELECT * FROM `datos` WHERE Patente='$Patente_vab'",$link); 
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #3 (permalink)  
Antiguo 16/02/2010, 13:40
 
Fecha de Ingreso: febrero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Eliminar registro, pero comprobar antes si existe o no dicho registro

¡Qué rápido y eficiente son en Foros del Web! Muchas gracias, ya he solucionado el problema. Hector2c, estamos pendiente. Cualquier otra duda estaré por aquí... Saludos! ;)

Etiquetas: comprobar, eliminar, existe, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:53.