Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

UPDATE no funciona

Estas en el tema de UPDATE no funciona en el foro de Bases de Datos General en Foros del Web. Hola, tengo un problema con un update en mySQL. El update lo hago en relacion al id que me llega de otra pagina. include('conex.php');//esta va ...
  #1 (permalink)  
Antiguo 29/09/2004, 12:13
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 21 años, 2 meses
Puntos: 4
UPDATE no funciona

Hola,

tengo un problema con un update en mySQL. El update lo hago en relacion al id que me llega de otra pagina.

include('conex.php');//esta va bien

$actualizar="UPDATE empresas SET id=".$id.", nombre=".$nombre.", sector=".$sector.", calle=".$calle.", num=".$num.", cp=".$cp.", localidad=".$localidad.", concejo=".$concejo.", provincia=".$provincia.", telefono=".$telefono.", movil=".$movil.", fax=".$fax.", email=".$email.", url=".$url.", observaciones=".$obs." WHERE id=".$id."";

Si aqui hago un echo $di me muestr lo correcto.

$ejecuta=mysql_query($actualizar,$conex);
$filas=mysql_affected_rows($ejecuta);

Pues al ejecutar este script completo me da un warning en el mysql_affected_rows (algo de que el argunmento no es valido) y no se porque.
¿Estoy haciendo mal el query?. El campo id es auto_increment el resto son varchar.

alguien me puede ayudar?

Gracias!.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #2 (permalink)  
Antiguo 29/09/2004, 12:32
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
El problema lo tienes en que los campos que no son numéricos precisan de las comillas para contener el valor que se quiere asignar.
Por otro lado, ¿por qué actualizas el campo id si le vas a mentener el valor?

Código:
$actualizar="UPDATE empresas SET nombre='$nombre', sector='$sector', calle='$calle', num=$num, cp=$cp, localidad='$localidad, concejo='$concejo', provincia=$provincia, telefono='$telefono', movil='$movil', fax='$fax', email='$email', url='$url', observaciones='$obs' WHERE id=$id";
Esto te debería funcionar en php. He puesto sólo las comillas en aquellos campos que me parece que pueden ser cadenas de caracteres, el ajuste debes hacerlo tú mismo.
Un saludo
  #3 (permalink)  
Antiguo 29/09/2004, 12:44
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 21 años, 2 meses
Puntos: 4
Gracias, me lo modifica pero em sigue saliendo el error:
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in...(la ruta del archivo)

Porque puede ser?

Gracias por tu ayuda!.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #4 (permalink)  
Antiguo 29/09/2004, 12:52
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
Prueba a ejecutar la función mysql_affected_rows() sin parámetros, porque tiene sólo uno opcional que es el identificador de enlace con el servidor.
Un saludo.

Última edición por Vice; 29/09/2004 a las 12:54
  #5 (permalink)  
Antiguo 29/09/2004, 13:08
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 9 meses
Puntos: 45
Hola
el mensaje te dice todo, "el argunmento no es valido" se refiere a que estas colocando mal, un parametro.
He revisado lo que has puesto y te falta poner comillas, y al final tenias esto ("")
asi deberia ser:
Código PHP:
$actualizar="UPDATE empresas SET id='".$id."', nombre='".$nombre."', sector='".$sector."', calle='".$calle."', num='".$num."', cp='".$cp."', localidad='".$localidad."', concejo='".$concejo."', provincia='".$provincia."', telefono='".$telefono."', movil='".$movil."', fax='".$fax."', email='".$email."', url='".$url."', observaciones='".$obs."' WHERE id='".$id."'"
si no se arregla con eso puedes hacer
- verifica que todos los campos que colocas dentro del query existan.
- que esten correctamente escrito.

Saludos!
  #6 (permalink)  
Antiguo 29/09/2004, 14:58
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 21 años, 2 meses
Puntos: 4
Sonrisa

He quitado el parametro a la funcion mysql_affected_rows() y ha funcionado, ya no me sale el error y se actualiza todo bien

Muchas Gracias a los dos por vuestra ayuda.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #7 (permalink)  
Antiguo 30/12/2004, 07:23
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 19 años, 11 meses
Puntos: 0
a mi me pas algo parecido

Código PHP:
function activar($si){
$sql "update user set activado='1',md5activar='0' where md5activar='$si'";///me lo actualiza
$select mysql_query($sql);
$num mysql_affected_rows($select);///aqui me da error mysql_affected_rows(): supplied argument is not a valid MySQL-Link 
abrir();
if(
$num == 1){
echo 
"<center>Ahora ya puedes jugar pulsando <a href=\"index.php\">aqui</a><br>
e insertando los datos con los que te registraste<br> Suerte!!!"
;
} else {
echo 
"<center>Lo siento tu cuenta ya ha caducado</center>";
}
cerrar();
abrir();
echo 
"<center><a href=\"index.php\">Volver</a></center>";
cerrar();

  #8 (permalink)  
Antiguo 30/12/2004, 07:49
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 19 años, 11 meses
Puntos: 0
ya lo he hecho funcionar!

Código PHP:

<?php
function activar($si){
$sql "update user set activado='1' where md5activar='$si'";
$select mysql_query($sql);
abrir();
if(
mysql_affected_rows() == 1){
echo 
"<center>Ahora ya puedes jugar a horrorq pulsando <a href=\"index.php\">aqui</a><br>
e insertando los datos con los que te registraste<br> Suerte!!!"
;
} else {
echo 
"<center>Lo siento tu cuenta ya ha caducado</center>";
}
cerrar();
abrir();
echo 
"<center><a href=\"index.php\">Volver</a></center>";
cerrar();
}
?>
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 14:31.