elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  No responde correctamente a petición de borrar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No responde correctamente a petición de borrar  (Leído 2,560 veces)
Servia


Desconectado Desconectado

Mensajes: 346


Ver Perfil
No responde correctamente a petición de borrar
« en: 21 Diciembre 2008, 16:30 pm »

Código
  1. <?
  2. require('conector.php');
  3.  
  4. $duke=($_SESSION['UsNick']);
  5. $id=($_REQUEST["id"]);
  6.  
  7. $sql = "DELETE FROM tablaus WHERE usuario='".$duke."' and id='".$id."'";
  8. $result = mysql_query($sql) or die(mysql_error());
  9.  
  10. if($result) {
  11. echo ' Borrado';
  12. } else {
  13. echo 'Error al intentar borrar ';
  14. }
  15. ?>

Cuando hago esto, teoricamente si no encuentra que encajen usuario y id en una misma entrada tiene que dar error, pero igualmente sale borrado. ¿Que hago mal?


En línea

LuffyFF


Desconectado Desconectado

Mensajes: 754


Final Fantasy XIII


Ver Perfil WWW
Re: No responde correctamente a petición de borrar
« Respuesta #1 en: 21 Diciembre 2008, 16:44 pm »

Así esta mal.

Porque mysql_query retorna TRUE o verdadero si se ejecuta la query de forma correcta. No importa que no devuelva resultados, pero si se ejecuta bien sin dar resultados, se transforma en TRUE.

Asi de que esa forma no te va a funcionar.

Lo que tendrías que hacer es un contador según $result, y si devuelve 0, sería Error al intentar borrar. Sino, Borrado. Porque si hay dos usuarios con el mismo usuario y id, puede devolver 2. Esta es una opción, que lo podrías usar con mysql_num_rows, para saber la cantidad de registros devueltos.

Si no te funciona, porque no estoy seguro si funcione el mysql_num_rows con DELETE, puedes hacer otra query para chequear si existe usuario = $duke y id = $id, y si existe, lo borra, sino, borrar.


En línea

Servia


Desconectado Desconectado

Mensajes: 346


Ver Perfil
Re: No responde correctamente a petición de borrar
« Respuesta #2 en: 21 Diciembre 2008, 16:56 pm »

Osea?
Código
  1. <?
  2. require('conector.php');
  3.  
  4. $duke=($_SESSION['UsNick']);
  5. $id=($_REQUEST["id"]);
  6.  
  7. $sql = "DELETE FROM tablaus WHERE usuario='".$duke."' and id='".$id."'";
  8. $result = mysql_query($sql) or die(mysql_error());
  9. $row = mysql_fetch_array($result);      
  10. $rows = mysql_num_rows($result);
  11.  
  12. if($rows) {
  13. echo ' Borrado';
  14. } else {
  15. echo 'Error al intentar borrar ';
  16. }
  17. ?>

Me da error
« Última modificación: 21 Diciembre 2008, 17:15 pm por Servia » En línea

eLank0
eLhAcKeR r00Lz


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: No responde correctamente a petición de borrar
« Respuesta #3 en: 21 Diciembre 2008, 18:58 pm »

Yo haría...

Código:
<?php
require('conector.php');
 
$duke=($_SESSION['UsNick']);
$id=($_REQUEST["id"]);
 
$sql = "DELETE FROM tablaus WHERE usuario='".$duke."' and id='".$id."'";
$result = mysql_query($sql) or die(mysql_error());

echo "Borrado correcto";

?>

Si ya tratas el error con la función específica no hace falta que lo vuelvas a poner abajo. En cualquier caso, podrías usar la función mysql_affected_rows(identificador de conexión) para comprobar que has borrado correctamente.

Salu2
En línea

Servia


Desconectado Desconectado

Mensajes: 346


Ver Perfil
Re: No responde correctamente a petición de borrar
« Respuesta #4 en: 21 Diciembre 2008, 19:18 pm »

Ya lo he arreglado como decía Lightning, gracias de todos modos :P
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: No responde correctamente a petición de borrar
« Respuesta #5 en: 23 Diciembre 2008, 06:40 am »

Yo lo haría:

Código
  1. <?php
  2. if(!require('conector.php')){
  3. die('Error al obtener los datos de la MySQL');
  4. }
  5. $duke = stripslashes($_SESSION['UsNick']);
  6. $id= (int)$_REQUEST["id"];
  7.  "DELETE FROM tablaus
  8.   WHERE usuario='".
  9.  "' and id='".$id."';"
  10. )){
  11. echo htmlspecialchars($duke, ENT_QUOTES).' - Borrado correcto';
  12. }else{
  13. echo 'No ha podido ser borrado.';
  14. }
  15. ?>
« Última modificación: 23 Diciembre 2008, 06:42 am por WHK » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Facebook responde a la petición de un padre desesperado
Noticias
wolfbcn 0 1,562 Último mensaje 10 Febrero 2014, 13:58 pm
por wolfbcn
Documentar función para borrar nodo según petición del usuario en C.
Programación C/C++
NOB2014 4 3,207 Último mensaje 16 Julio 2016, 02:59 am
por NOB2014
Servidor TCP no responde correctamente a los paquetes.
.NET (C#, VB.NET, ASP)
FranFin 0 1,733 Último mensaje 17 Diciembre 2018, 13:46 pm
por FranFin
Como borrar correctamente las claves en Regedit?
Windows
jandres 4 4,267 Último mensaje 20 Enero 2019, 18:26 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines