Foros del Web » Programando para Internet » PHP »

Por que no me hace el UDDATE?

Estas en el tema de Por que no me hace el UDDATE? en el foro de PHP en Foros del Web. Me esta volviendo loco esto. quiero hacer u n UPDATE, los ID que envia para la actualizacion estan bien, por me actualiza el ultimo registro ...
  #1 (permalink)  
Antiguo 14/08/2009, 08:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Por que no me hace el UDDATE?

Me esta volviendo loco esto.
quiero hacer u n UPDATE, los ID que envia para la actualizacion estan bien, por me actualiza el ultimo registro en vez del que toca.
Le doy mil vueltas y no le veo el fallo. Alguna sugerencia?

Un saludo

Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "seleccion")) {
  
$updateSQL sprintf("UPDATE apuntados SET id_producto=%s, cantidad=%s, usuario=%s, eliminado=%s, fecha_eliminado=%s WHERE id_apuntados=%s",
                       
GetSQLValueString($_POST['id_producto'], "int"),
                       
GetSQLValueString($_POST['cantidad'], "int"),
                       
GetSQLValueString($_POST['nom_usuario'], "text"),
                       
GetSQLValueString($_POST['eliminar'], "text"),
                       
GetSQLValueString($_POST['fecha_eliminado'], "date"),
                       
GetSQLValueString($_POST['id'], "int"));

  
mysql_select_db($database_compramos$compramos);
  
$Result1 mysql_query($updateSQL$compramos) or die(mysql_error());

  
$updateGoTo "configuracion.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$updateGoTo .= (strpos($updateGoTo'?')) ? "&" "?";
    
$updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$updateGoTo));

  #2 (permalink)  
Antiguo 14/08/2009, 09:12
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Por que no me hace el UDDATE?

prueba con esto.
la sintaxis y estructura es correcta por lo que me hace pensar que tu post["id"] contiene un dato equivocado

Código PHP:
$updateSQL sprintf("UPDATE apuntados SET id_producto=%s, cantidad=%s, usuario=%s, eliminado=%s, fecha_eliminado=%s WHERE id_apuntados=%s"
                       
GetSQLValueString($_POST['id_producto'], "int"), 
                       
GetSQLValueString($_POST['cantidad'], "int"), 
                       
GetSQLValueString($_POST['nom_usuario'], "text"), 
                       
GetSQLValueString($_POST['eliminar'], "text"), 
                       
GetSQLValueString($_POST['fecha_eliminado'], "date"), 
                       
GetSQLValueString($_POST['id'], "int")); 
  echo 
$updateSQL."<br>";
  
mysql_select_db($database_compramos$compramos); 
  exit(); 
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #3 (permalink)  
Antiguo 14/08/2009, 11:48
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Por que no me hace el UDDATE?

Pues si, me envia un dato equivocado, pero el caso es que le imprimo en pantalla el mismo dato que me va a enviar y me sale en cada fila el "id_comprados" correspondiente, no se por que al hacer el UPDATE me envia un id diferente.

En esta consulta saco 3 filas por pagina, en la pagina 1 cuando envia el UPDATE me saca el ID 109 (esto es lo que me sale "UPDATE apuntados SET cantidad=0, eliminado='si', WHERE id_apuntados=109") cuando yo veo que el ID es el "98"
En la segunda pagina me sale el ID 113 ("UPDATE apuntados SET cantidad=0, eliminado='si', WHERE id_apuntados=113").
El caso es que los ID que me envia son los ultimos registros de cada pagina.

Muuu raro


Cita:
Iniciado por Avatar810 Ver Mensaje
prueba con esto.
la sintaxis y estructura es correcta por lo que me hace pensar que tu post["id"] contiene un dato equivocado

Código PHP:
$updateSQL sprintf("UPDATE apuntados SET id_producto=%s, cantidad=%s, usuario=%s, eliminado=%s, fecha_eliminado=%s WHERE id_apuntados=%s"
                       
GetSQLValueString($_POST['id_producto'], "int"), 
                       
GetSQLValueString($_POST['cantidad'], "int"), 
                       
GetSQLValueString($_POST['nom_usuario'], "text"), 
                       
GetSQLValueString($_POST['eliminar'], "text"), 
                       
GetSQLValueString($_POST['fecha_eliminado'], "date"), 
                       
GetSQLValueString($_POST['id'], "int")); 
  echo 
$updateSQL."<br>";
  
mysql_select_db($database_compramos$compramos); 
  exit(); 
  #4 (permalink)  
Antiguo 14/08/2009, 12:16
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Por que no me hace el UDDATE?

en tal caso tu error no esta en el update sino en el que genera la forma, vaya, el que llena el campo ID de tu <form>
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #5 (permalink)  
Antiguo 14/08/2009, 12:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Por que no me hace el UDDATE?

puede estar aqui el error?
Código PHP:
<?php
// si el formulario ha sido enviado, convertir subarrays $_POST a strings
if (array_key_exists('configuracion'$_POST)) {
  if (isset(
$_POST['categoria'])) {
    
$_POST['categoria'] = implode(','$_POST['categoria']);
    }
  else {
    
$_POST['categoria'] = '';
    }
  }
?>
ya que hay 2 updates en la misma pagina y el primero me funciona bien.


Cita:
Iniciado por Avatar810 Ver Mensaje
en tal caso tu error no esta en el update sino en el que genera la forma, vaya, el que llena el campo ID de tu <form>
  #6 (permalink)  
Antiguo 14/08/2009, 15:06
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Por que no me hace el UDDATE?

pq tienes mas de 1 updtae para el mismo dato??
que actualiza el primero?
que hay entre los 2 update (referente al codigo)
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #7 (permalink)  
Antiguo 14/08/2009, 15:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Por que no me hace el UDDATE?

No son 2 updates diferentes;
El primero me actualiza una tabla y luego separado tengo otro que me actualiza otra tabla.
Son 2 forms diferentes. Pero he visto que puede que el error este en ese codigo, pero tampoco se como deberia estar.

Un saludo

Cita:
Iniciado por Avatar810 Ver Mensaje
pq tienes mas de 1 updtae para el mismo dato??
que actualiza el primero?
que hay entre los 2 update (referente al codigo)
  #8 (permalink)  
Antiguo 19/08/2009, 09:46
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Por que no me hace el UDDATE?

pues sin ver el codigo no se puede decir nada...
ademas que si no tiene nada que ver un update con otro no tienen pq afectar que tengas 1, 2 o 100 update...
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
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.