Foros del Web » Programando para Internet » PHP »

mysql_query --> UPDATE

Estas en el tema de mysql_query --> UPDATE en el foro de PHP en Foros del Web. buenas, les escribo pq hago una consulta para actualizar y basicamente, no lo hace. no le veo el error y he intentado las mil y ...
  #1 (permalink)  
Antiguo 19/06/2007, 07:47
Avatar de arwen_1  
Fecha de Ingreso: diciembre-2006
Mensajes: 81
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación mysql_query --> UPDATE

buenas, les escribo pq hago una consulta para actualizar y basicamente, no lo hace. no le veo el error y he intentado las mil y una formas!
el codigo es:

$actualizar=sprintf("UPDATE banner SET id_imagen=%d WHERE id_banner= %d",$max_id,$ultimo_registro);

---> donde con el sprintf concateno en la cadena entre comillas dobles las variables del final.

mysql_query($consulta);

cabe destacar que antes de hacer la concatenacion en $actualizar, imprimo los valores de $max_id y $ultimo_registro y son valores validos, de hecho imprimo la cadena resultante y me voy a la consola y la copio exactamente y actualiza el campo especificado sin problema.
si lo hago:
mysql_query("UPDATE banner SET id_imagen=1 WHERE id_banner= 86");
si actualiza!

asi que... no se!

ayuda por favorrr
  #2 (permalink)  
Antiguo 19/06/2007, 07:52
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: mysql_query --> UPDATE

prueba con:

$actualizar=sprintf("UPDATE banner SET id_imagen=%d WHERE id_banner= %d",$max_id,$ultimo_registro);

Código PHP:
$actualizar="update banner set id_imagen='".$max_id."' where id_banner='".$ultimo_registro."'"
o
Código PHP:
$actualizar="update banner set id_imagen=".$max_id." where id_banner=".$ultimo_registro

suerte ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 19/06/2007, 07:53
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: mysql_query --> UPDATE

mmmmmmm sprintf ya ok pero asi a secas no me dice nada si es una variable debe de llevar su $ signo pesito digo yo :P
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #4 (permalink)  
Antiguo 19/06/2007, 07:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: mysql_query --> UPDATE

Dices que usas este codigo:
Código PHP:
$actualizar=sprintf("UPDATE banner SET id_imagen=%d WHERE id_banner= %d",$max_id,$ultimo_registro);

---> 
donde con el sprintf concateno en la cadena entre comillas dobles las variables del final.

mysql_query($consulta); 
Si te das cuenta le estas dando a mysql_query, la variable $consulta, sin embargo la variable que armas es: $actualizar.

Prueba con:
Código PHP:
mysql_query$actualizar ) or die( mysql_error() ); 
Saludos.
  #5 (permalink)  
Antiguo 19/06/2007, 08:00
Avatar de arwen_1  
Fecha de Ingreso: diciembre-2006
Mensajes: 81
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: mysql_query --> UPDATE

Zital, la segunda forma ya lo habia probado y tampoco funciono, probe la primera y nada

Kanoninox, no entendi lo que me dijiste :s puedes explicarme mejor? por fiss
  #6 (permalink)  
Antiguo 19/06/2007, 08:04
Avatar de arwen_1  
Fecha de Ingreso: diciembre-2006
Mensajes: 81
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: mysql_query --> UPDATE

gatorV, disculpa esa!

en el mysql_query si tengo el $actualizar, me equivoque al copiarlo aca :s

aplique tu recomendacion de:

mysql_query( $actualizar ) or die( mysql_error() );

y nada... es como si esa consulta no se hiciera...
  #7 (permalink)  
Antiguo 19/06/2007, 08:07
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: mysql_query --> UPDATE

entonces te falta la conexión a la base de datos.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #8 (permalink)  
Antiguo 19/06/2007, 08:12
Avatar de arwen_1  
Fecha de Ingreso: diciembre-2006
Mensajes: 81
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: mysql_query --> UPDATE

mmm nop... arriba de esas senetcias hago select de otras tablas, y de esa misma y lo hace.

y lo curioso es que si coloco:

mysql_query="UPDATE banner SET id_imagen=1 WHERE id_banner= 86";

si lo actualiza! no creo que sea por la conxion :s
  #9 (permalink)  
Antiguo 19/06/2007, 08:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: mysql_query --> UPDATE

Bien, pero ¿por qué no hacer simplemente
Código PHP:
$consulta 'UPDATE banner SET id_imagen='.$max_id.' WHERE id_banner='.$ultimo_registro); 
y probar si funciona?
Vamos a lo simple primero y luego a sprintf (¿tiene alguna ventaja particular?)
O mejor aún,

echo $consulta;

y ver exactamente qué está haciendo con la variable


Saludos.
  #10 (permalink)  
Antiguo 19/06/2007, 08:21
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: mysql_query --> UPDATE

¿mysql_query="UPDATE banner SET id_imagen=1 WHERE id_banner= 86"; ?

no sera:

mysql_query("UPDATE banner SET id_imagen=1 WHERE id_banner= 86");
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #11 (permalink)  
Antiguo 19/06/2007, 08:23
Avatar de arwen_1  
Fecha de Ingreso: diciembre-2006
Mensajes: 81
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: mysql_query --> UPDATE

asi simple, tambien lo he probado, con comillas simples y dobles :s y me imprime esto:

UPDATE banner SET id_imagen=176 WHERE id_banner=97

pero no hace la actualizacion. copio esa impresion en la consola, y si actualiza

alguna otra idea..?
  #12 (permalink)  
Antiguo 19/06/2007, 08:25
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: mysql_query --> UPDATE

¿y en cuanto a los errores?
luego de hacer la consulta, hacé
echo mysql_error();

y cuando estés programando algo nuevo, siempre dejá

error_reporting(E_ALL);
ini_set('display_errors', true);

así trabajes en el servidor que trabajes siempre vas a ver todos los errores que genere php.


Saludos.
  #13 (permalink)  
Antiguo 19/06/2007, 08:28
Avatar de arwen_1  
Fecha de Ingreso: diciembre-2006
Mensajes: 81
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: mysql_query --> UPDATE

si, ZITAL tienes razon.

y asi si lo hace, pero necesito es colocarle una variable.. :s

tbn he probado con:

$actualizar='UPDATE banner SET id_imagen=$max_id WHERE id_banner= $ultimo_registro';

eval ("\$actualizar = \"$actualizar\";");

imprimo --> echo $actualizar.

y la cadena retornada esta bien, pero... no lo hace.
  #14 (permalink)  
Antiguo 19/06/2007, 08:41
Avatar de arwen_1  
Fecha de Ingreso: diciembre-2006
Mensajes: 81
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: mysql_query --> UPDATE

alvlin, imprimo mysql_error() y no dice nada, asi que supongo que no tiene error :s utilizando etsa forma:

$actualizar="UPDATE banner SET id_imagen=".$max_id." WHERE id_banner=".$ultimo_registro;

mysql_query( $actualizar ) or die( mysql_error() );

echo mysql_error();



alguna otra idea..?? esto suena a embrujo no??
  #15 (permalink)  
Antiguo 19/06/2007, 08:53
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: mysql_query --> UPDATE

Pregunta tonta: ¿existe en la tabla el valor de id_banner que estás pasando?
Digo, todos lo supusimos pero quizás no es correcto el valor de $ultimo_registro...

Probá hacer SELECT * FROM banner WHERE id_banner=$ultimo_registro y contá si tenés resultados (deberías tener 1)
  #16 (permalink)  
Antiguo 19/06/2007, 08:54
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: mysql_query --> UPDATE

pregunta mas tonta, ? mmmmmm cuando uno pasa numeros al igual que fechas no pide las comillas simples 'valor' y como aqui no hay como pasarlas no las toma en la actualizacion?
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #17 (permalink)  
Antiguo 19/06/2007, 08:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: mysql_query --> UPDATE

No kaninox, cuando uno pasa números las comillas no son necesarias. No es un error si se incluyen, pero no son necesarias.
  #18 (permalink)  
Antiguo 19/06/2007, 09:21
Avatar de arwen_1  
Fecha de Ingreso: diciembre-2006
Mensajes: 81
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: mysql_query --> UPDATE

kaninox, tambien lo he probado con las comillas simples... y al imprimir aparece asi:

$actualizar="UPDATE banner SET id_imagen='$max_id' WHERE id_banner='$ultimo_registro'";

UPDATE banner SET id_imagen='194' WHERE id_banner='111'

si coloco esa cadena en la consola, la ejecuta sin problema.

pero al hacerlo en la aplicacion... no lo actualiza.


y con respecto a la pregunta de aldvin, hago la consulta que me dices, del select el id_banner donde coincida con el $ultimo_registro. pero no regresa nada :s
pero si verifico en la base de datos ese $ultimo registro existe.. y de hecho hasta lo imprimo antes de hacer la concatenacion y si imprime el ultimo registro de esa tabla..
  #19 (permalink)  
Antiguo 19/06/2007, 09:25
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: mysql_query --> UPDATE

bueno, pero es importante hacer el select inmediatamente antes del update, porque podría ser que sin querer lo estés modificando. Si ese select no te muestra nada, quiere decir que hay algo en el código que le está dando un valor diferente...
  #20 (permalink)  
Antiguo 19/06/2007, 09:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: mysql_query --> UPDATE

mmm esta muy raro podrias poner el codigo completo de como estas haciendo desde la construccion del query hasta enviar?

Saludos.
  #21 (permalink)  
Antiguo 19/06/2007, 09:41
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: mysql_query --> UPDATE

pa mi que se cae en algo que na tiene que ver X)
por otro lado no le veo la idea :/
__________________
Gokuh Salvo al mundo. PUNTO!!!!
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 19:00.