Foros del Web » Programando para Internet » PHP »

mysql_affected_rows no me funciona!

Estas en el tema de mysql_affected_rows no me funciona! en el foro de PHP en Foros del Web. Amigos: necesito saber cuantos registros son borrados como consecuencia de ciertas acciones de los users de mi directorio. La cuestion es que encontré la funcion ...
  #1 (permalink)  
Antiguo 09/01/2008, 10:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
mysql_affected_rows no me funciona!

Amigos: necesito saber cuantos registros son borrados como consecuencia de ciertas acciones de los users de mi directorio.

La cuestion es que encontré la funcion mysql_affected_rows() y sigo el ejemplo de php.net pero no funciona! Concretamente es el ejemplo #1 que refiere a las filas afectadas por un DELETE.


Alguien sabe que puede ser ? existe el WHERE que es el pre-requisito impuesto en el manual.

Código PHP:
// conecto a DB

//Purga de la base (registros vacios)
 
$sql "DELETE FROM `contenido` WHERE (`anchor`='' OR `url`='' OR `url`='http://') LIMIT 1;";
 
mysql_query($sql) or die('A error occured: ' mysql_error());    
    
printf("Records deleted: %d\n"mysql_affected_rows()); 
El resultado es "Records deleted: 0" pero pasa cuando no deberia!!! por que ???
__________________
Salu2!
  #2 (permalink)  
Antiguo 09/01/2008, 10:16
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: mysql_affected_rows no me funciona!

He probado eliminado el LIMIT 1 del final de la consulta pero con el mismo resultado :(
__________________
Salu2!
  #3 (permalink)  
Antiguo 09/01/2008, 10:33
Avatar de forecast  
Fecha de Ingreso: octubre-2004
Mensajes: 259
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: mysql_affected_rows no me funciona!

Yo lo veo bien;

Dos opciones

1) la consulta está mal.
2)No se borra nada

Hazlo así y nos dices que has descubierto

Código PHP:
 $sql "DELETE FROM `contenido` WHERE (`anchor`='' OR `url`='' OR `url`='http://') LIMIT 1;";
 if(
$result=mysql_query($sql));    
{  
     
//si paso por aquí la consulta está bien y seguramente no se borran filas, compruebalo mirando la BBDD
     
printf("Records deleted: %d\n"mysql_affected_rows());

Añadiendo cosas sobre el tema leo en php.net
"Si la última sentencia fue un DELETE sin clausula WHERE, todos los registros han sido borrados de la tabla pero esta función devolvera cero." No es lo que te pasa... pero bueno no está de más ponerlo.

A ver que tal...
  #4 (permalink)  
Antiguo 09/01/2008, 10:36
 
Fecha de Ingreso: enero-2007
Mensajes: 272
Antigüedad: 17 años, 3 meses
Puntos: 5
Re: mysql_affected_rows no me funciona!

Hola:

Probaste borrando directamente a MySQL, digo, para descartar otros posibles errores....

Por otro lado intenta sacar las comillas simples de los campos de la base de datos, solo dejaselo a los parámetros que le estás enviando.

Otro tips que siempre ayuda bastante, es sacar el string de la instrucción delete por pantalla, luego la copias y la ejecutas directamente a mysql.

Hasta Luego
  #5 (permalink)  
Antiguo 09/01/2008, 10:41
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: mysql_affected_rows no me funciona!

hola, creo que este mensaje te puede ayudar:
Cita:
I see that when try to use mysql_affected_rows() with "mysql_pconnect(...)" without link indetifier as param in "mysql_affected_rows()" the result is allways -1.
When use link identifier "mysql_affected_rows($this_sql_connection)" - everything is Fine. This is is on PHP Version 5.2.0
Hope that this was helpfull for somebody
http://www.php.net/manual/es/functio...rows.php#75415
basicamente lo que entiendo y fue lo que me llamo la antencion fue esto, prueba hacerlo asi:
Código PHP:
printf("Records deleted: %d\n"mysql_affected_rows($sql)); 
saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 09/01/2008, 10:51
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: mysql_affected_rows no me funciona!

Amigos: he probado usando mysql_affected_rows($sql) como dice el amigo rogertm pero me da este error:

Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\purga.php on line 8

Parece que no acepta un identificador de enlace o es invalido por alguna razon !!!!
__________________
Salu2!
  #7 (permalink)  
Antiguo 09/01/2008, 10:55
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: mysql_affected_rows no me funciona!

SI dice eso es porque la consulta $sql no eta bien hecha, o no esta arrojando ningun resultado
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #8 (permalink)  
Antiguo 09/01/2008, 10:56
Avatar de forecast  
Fecha de Ingreso: octubre-2004
Mensajes: 259
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: mysql_affected_rows no me funciona!

Por lo que veo no es $sql el valor que debes pasar sin el valor de tu conexión es decir la variable donde guardas el mysql_connect()
  #9 (permalink)  
Antiguo 09/01/2008, 10:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: mysql_affected_rows no me funciona!

Cita:
Por lo que veo no es $sql el valor que debes pasar sin el valor de tu conexión es decir la variable donde guardas el mysql_connect()
Gracias ...es verdad!!! .. he confundio IDENTIFICADOR DE ENLACE con RECURSO y he cambiado la variable $sql por $con (que es la que corresponde)

Cuando hago un ECHO de $con sale: Resource id #18

Pero invariablemente sigue arrojando: Records deleted: 0 Records deleted: 0
(cuando SE que se borra una fila)

Ideas ? :(
__________________
Salu2!
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 21:09.