Foros del Web » Programando para Internet » PHP »

Problemas con un script de eliminacion

Estas en el tema de Problemas con un script de eliminacion en el foro de PHP en Foros del Web. Hola gente estoy teniendo algunos problemas de intepretacion en este codigo Resulta que estoy mandando una variable por post a este php para que elimine ...
  #1 (permalink)  
Antiguo 06/04/2005, 09:15
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Problemas con un script de eliminacion

Hola gente estoy teniendo algunos problemas de intepretacion en este codigo

Resulta que estoy mandando una variable por post a este php para que elimine el registro de una base de datos

Código PHP:
//conexion a la base
if(isset($_POST['id_eli_usua'])){
$id_eli_usua=$HTTP_POST_VARS['id_eli_usua'];
$query_rsdtotal "DELETE FROM admin WHERE id_usuario='$id_eli_usua'"
$row_rsdtotal=mysql_query($query_rsdtotal);
     if(
$row_rsdtotal!=""){ 
       echo 
"&resul=ok"
       echo 
$row_rsdtotal;//esto es solo para comprobar que es lo que imprime
       
} else { 
           echo 
"&resul=mal"
           echo 
$query_rsdtotal//esto es solo para comprobar que es lo que imprime
        
}
mysql_free_result($rsdtotal); 

mysql_close(); 
El problema es que no se porque extraña razon este script no funciona, osea, cuando no se encuentre el registro en la base ¿el valor de $row_rsdtotal no tendria que ser cero?, bueno ne se porque pero no lo es

Hay algo que esta mal y no tengo ni idea que puede ser

Si alguien tiene alguna estructura que realice lo mismo, por favor me la pasa

Gracias
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #2 (permalink)  
Antiguo 06/04/2005, 09:19
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
el mysql_query para delete te devuelve true o false en caso de ser exitoso o no. Prueba con eso.
Saludos
  #3 (permalink)  
Antiguo 06/04/2005, 09:31
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Mira coloque esto y sigue sin funcionar, lo adapte para poder probarlo
Código PHP:
$id_eli_usua 15;//este registro no existe en la base
$query_rsdtotal "DELETE FROM admin WHERE id_usuario='$id_eli_usua'"
$row_rsdtotal=mysql_query($query_rsdtotal);
     if(
$row_rsdtotal == true){ 
       echo 
"&resul=ok"
       echo 
$row_rsdtotal;//para probar que valor devuelve
       
} else { 
           echo 
"&resul=mal"

        } 
Dado que el registro no existe en la base me tendria que salir por mal pero no, me imprime ok1
El uno es del valor de $row_rsdtotal

¿Que es lo que esta mal?
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #4 (permalink)  
Antiguo 06/04/2005, 09:37
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
mira creo no estar equivocado pero si el registro no existe no te devuelve false, te devuelve true. Flase retorno si hubo un error, e intentar borrar un registro que no existe concluye con que no se elimina nada.
Espero no estar equivocado.
Saludos.
  #5 (permalink)  
Antiguo 06/04/2005, 09:39
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Pero entonces como puedo saber si dicho registro se borro o no con exito?
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #6 (permalink)  
Antiguo 06/04/2005, 09:40
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading...............


El ID es valór entero.

Código PHP:
//conexion a la base
if(isset($_POST['id_eli_usua'])){
//$id_eli_usua=$HTTP_POST_VARS['id_eli_usua']; 

$query_rsdtotal "DELETE FROM admin WHERE id_usuario=".$_POST['id_eli_usua'];
$row_rsdtotal=mysql_query($query_rsdtotal) or die("Error SQL: ".mysql_error());

__________________

Maborak Technologies
  #7 (permalink)  
Antiguo 06/04/2005, 09:44
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
si el registro existe y te retorna true se abra eliminado bien.AHora si el registro no existe te devolvera true, aunque no alla efectuado el borrado de algo que no existe con lo cual tampoco estaria mal creer que hizo bien las cosas.AHora si los ids vienen de algun listados previo deberia de existir los ids, si los ids los pueden agregar a mano , entonces deberias de verificar primero la existencia de dicho id, para luego efectuar el borrado, en caso de que exista y el borrado sea true, entonces esta ok, en caso de que no exista, no efectuas el borrado y podes tirar un mensaje de error.
Esto es lo que haria. No se si existe una forma directa de saber si lo borro.
Saludos
  #8 (permalink)  
Antiguo 06/04/2005, 09:50
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Ok, en principio gracias a los dos ahora bien

MartinTandil: eso lo entendi lo que sucede que mi intencion era verificar si se borro correctamente de la base.

MaBoRaK: Creo que por aca esta mi respuesta pero podrias explicarte un poco mas ya que me manejo de php es algo limitado, osea con lo que vos colocas como hago luego para tomar el valor si fue error o no, te lo pregunto porque estos valores los tengo que tomar desde un swf.

Garcias
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #9 (permalink)  
Antiguo 06/04/2005, 10:27
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Ok me conformo con que me diga si la operacion se realizo o no, pero me qwueda algo mas, tengo problemas con esta linea

mysql_free_result($row_rsdtotal);


el codigo completo es este
Código PHP:
//conexion a la base
if(isset($_POST['id_eli_usua'])){
$id_eli_usua=$HTTP_POST_VARS['id_eli_usua'];
$query_rsdtotal "DELETE FROM admin WHERE id_usuario='$id_eli_usua'"
$row_rsdtotal=mysql_query($query_rsdtotal) or die("Error SQL: ".mysql_error()); 
if(
$row_rsdtotal "true") { 
       echo 
"&resul=ok"
       } else { 
           echo 
"&resul=mal"
        }
mysql_free_result($row_rsdtotal); // esta esla linea en cuestion

mysql_close(); 
si la dejo me sale un error de tipo warning etc,

¿para que sirve?, ¿la saco o la dejo?
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #10 (permalink)  
Antiguo 06/04/2005, 10:43
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
mysql_free_result recibe como parametro un resource, y lo que te retorna la ejecucion del query de un delete no lo es. Por eso te sale el error. No necesitas hacer un mysql_free_result en tu caso.Si fuera un select si.
Saludos
  #11 (permalink)  
Antiguo 06/04/2005, 11:35
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Ok gracias
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
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 06:17.