Foros del Web » Programando para Internet » PHP »

Problema con UPDATE...

Estas en el tema de Problema con UPDATE... en el foro de PHP en Foros del Web. Saludos. Estoy tratando de hacer un UPDATE multiple, pero los campos se me actualizan mal, (desordenados, etc) alguien me podria orientar un poco con respecto ...
  #1 (permalink)  
Antiguo 18/10/2010, 07:40
 
Fecha de Ingreso: octubre-2010
Mensajes: 18
Antigüedad: 13 años, 6 meses
Puntos: 0
Problema con UPDATE...

Saludos.

Estoy tratando de hacer un UPDATE multiple, pero los campos se me actualizan mal, (desordenados, etc) alguien me podria orientar un poco con respecto a lo que podria estar haciendo mal? aqui posteo el codigo:

Código PHP:
<?php
//conecta a la bd
$conexion=mysql_connect("localhost","root","");
if(!
$conexion){
die(
"La conexion a la Base de datos fallo" mysqlerror($conexion));
}
//selecciona la bd
$db_select=mysql_select_db("_bd",$conexion);
if (!
$db_select){
die(
"La seleccion de la Base de datos fallo" mysqlerror($db_select));
}
$tamaño count($_POST['cantidad']);
$numero=$_GET['recordID'];

// loop para actualizar cada registro
$i 0;
while (
$i $tamaño) {
//define cada variable
$cantidad$_POST['cantidad'][$i];
$actualizamysql_query("UPDATE pedidos2 SET cantidad = '$cantidad' WHERE NUMERO='$numero' and ITEM = '$i' order by item",$conexion);
if(!
$actualiza){
die(
"La ejecucion del query fallo" mysqlerror($actualiza));
}



print 
"$cantidad<br /><br /><em>Actualizado!</em><br /><br />";
++
$i;
}







//cerrar conexion
mysql_close($conexion);

?>
  #2 (permalink)  
Antiguo 18/10/2010, 07:47
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Problema con UPDATE...

Amigo hasta el sol de hoy nunca yo he hecho un Update con order by. Te funciona ? y tengo tiempo en esto...

A que te refieres con que no te lo hace ordenado?
  #3 (permalink)  
Antiguo 18/10/2010, 08:09
 
Fecha de Ingreso: octubre-2010
Mensajes: 18
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema con UPDATE...

Saludos, el order by lo coloque ahi a modo de prueba a ver si me servia, la verdad es que yo tampoco lo habia hecho antes, bueno te comento, modifico las cantidades de los registros, y luego al volver me salen en diferente orden, es decir el numero de ITEM no corresponde al registro modificado, fijate en este ejemplo:

Aqui coloque 123 en el primer item, 1234 en el segundo item y 12345 en el tercero, y me hizo el update, pero al darle refresh me muestra esto

Fijate que me coloco el 1234 que inserte de segundo en el primer ITEM y desaparecio el registro 123, la verdad no tengo idea de que es lo que tengo mal, ya que pense que mediante el while el update automaticamente se asignaba segun el registro de cada item... alguien me podra dar una mano?
  #4 (permalink)  
Antiguo 18/10/2010, 08:21
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Problema con UPDATE...

Verifica la lógica, que tienes en $numero por ejemplo...

Lo único que veo diferente es que $i que es como defines a item comienza en cero (0) y en las listas que colocas tu primer item es 1...

Saludos
  #5 (permalink)  
Antiguo 18/10/2010, 08:53
Avatar de CazaresLuis  
Fecha de Ingreso: septiembre-2010
Ubicación: Distrito Federal
Mensajes: 67
Antigüedad: 13 años, 6 meses
Puntos: 2
Información Respuesta: Problema con UPDATE...

Hola buenos días, en si que es lo que quiere hacer? si lo explicas mejoste podríamos ayudar, como dice el otro comentario hay que checar la logica de la funcionalidad de tu sistema.

Si lo que deseas es actualizar el costo de ciertos productos lo mas aconsejable es que los marques con una clave de producto, ahora bien si quieres actualizar por el costo y de forma ordenada pues primero vas a taner que hacer un select ordenando como lo necesitas, luego lo recorres y vas actualizando cada registro

Saludos
  #6 (permalink)  
Antiguo 18/10/2010, 08:58
 
Fecha de Ingreso: octubre-2010
Mensajes: 18
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema con UPDATE...

Saludos CazaresLuis, lo que quiero es actualizar el campo de cantidades de productos, ya en una pagina anterior ordene con un select y order by los productos, basicamente lo que quiero es que al darle actualizar la cantidad de producto se actualice tomando en cuenta el ITEM
  #7 (permalink)  
Antiguo 18/10/2010, 09:04
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Problema con UPDATE...

Cita:
Iniciado por solarconfinement Ver Mensaje
Saludos CazaresLuis, lo que quiero es actualizar el campo de cantidades de productos, ya en una pagina anterior ordene con un select y order by los productos, basicamente lo que quiero es que al darle actualizar la cantidad de producto se actualice tomando en cuenta el ITEM
Pero revisaste lo que te dije, en funcion de los valore que le colocas a $i y con el cual actualizas item?
  #8 (permalink)  
Antiguo 18/10/2010, 09:56
Avatar de CazaresLuis  
Fecha de Ingreso: septiembre-2010
Ubicación: Distrito Federal
Mensajes: 67
Antigüedad: 13 años, 6 meses
Puntos: 2
Información Respuesta: Problema con UPDATE...

Ahhhhhhhh creo que ya entendi, los ejemplos que pusiste son un formulario en donde cambias el costo uno por uno y despues le dices que actualice o me equivoco.

aqui si esta mas cañon porque debes guardar tal vez en una variable oculta en el mismo orden el item de cada registro, estas de acuerdo que vas recorriendo cada producto proveniente del formulario?, el asunto es como vas a saber a que item le corresponde dicho costo

Código PHP:

$cantidad
$_POST['cantidad'][$i];
$item$_POST['items'][$i];


$quey "UPDATE pedidos2 SET
cantidad = $cantidad
WHERE ITEM = $item); 
Saludos
  #9 (permalink)  
Antiguo 18/10/2010, 10:04
 
Fecha de Ingreso: octubre-2010
Mensajes: 18
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema con UPDATE...

exacto, eso es lo que quiero, disculpenme por no haberme explicado de la mejor manera

la verdad es que lo estaba intentando hacer ahora con un FOR e igual no me salia.
Código PHP:
<?php
//conecta a la bd
$conexion=mysql_connect("localhost","root","");
if(!
$conexion){
die(
"La conexion a la Base de datos fallo" mysqlerror($conexion));
}
//selecciona la bd
$db_select=mysql_select_db("o_bd",$conexion);
if (!
$db_select){
die(
"La seleccion de la Base de datos fallo" mysqlerror($db_select));
}
$tama&#241;o = count($_POST['cantidad']);
$numero=$_GET['recordID'];


// loop para actualizar cada registro

$i 0;
/*
while ($i < $tamaño) {
//define cada variable
$cantidad= $_POST['cantidad'][$i];
$actualiza= mysql_query("UPDATE pedidos2 SET cantidad = '$cantidad' WHERE NUMERO='$numero' and ITEM = '$i' LIMIT 1 ",$conexion);
if(!$actualiza){
die("La ejecucion del query fallo" . mysqlerror($actualiza));
}



print "$cantidad<br /><br /><em>Actualizado!</em><br /><br />";
++$i;
}
*/
for ($i=1;$i<=$tama&#241;o;$i++){
     
$cantidad$_POST['cantidad'][$i];
     echo 
$cantidad;
     
mysql_query("UPDATE pedidos2 SET cantidad = '$cantidad' WHERE NUMERO='$numero' and ITEM = '$i' LIMIT 1 ",$conexion) or
        die(
"Problemas en el UPDATE:".mysql_error());}  




//cerrar conexion
mysql_close($conexion);

?>
Muchas gracias egepe y cazaresluis, la verdad es que es un problema de logica, seguire dandole y en cuanto tenga la solucion la psoteare aca :) gracias
  #10 (permalink)  
Antiguo 18/10/2010, 13:06
 
Fecha de Ingreso: octubre-2010
Mensajes: 18
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema con UPDATE...

Bueno, ya meti el valor HIDDEN en la pagina anterior, y al darle print_r al $_POST me muestra esto:

Array ( [id] => Array ( [1] => [2] => [3] => [4] => [5] => ) [cantidad] => Array ( [1] => 121.00 [2] => 122.00 [3] => 122.00 [4] => 123.00 [5] => 12.00 ) )

Ahora, al intentar ejecutar el UPDATE me sale este error:


Notice: Undefined offset: 0 in C:\wamp\www\21092010\update.php on line 25

Notice: Undefined offset: 0 in C:\wamp\www\21092010\update.php on line 26


Actualizado!

121.00

Actualizado!

122.00

Actualizado!

122.00

Actualizado!

123.00

Actualizado!

Aca el codigo:

Código PHP:
while ($i $tamaño) {
//define cada variable
$cantidad$_POST['cantidad'][$i];
$id=$_POST['id'][$i];
echo 
$id;
$actualizamysql_query("UPDATE pedidos2 SET cantidad = '$cantidad' WHERE NUMERO='$numero' and ITEM = '$id' LIMIT 1 ",$conexion);
if(!
$actualiza){
die(
"La ejecucion del query fallo" mysqlerror($actualiza));
}



print 
"$cantidad<br /><br /><em>Actualizado!</em><br /><br />";
++
$i;

y gracias de antemano!

Etiquetas: update
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 05:10.