Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Update masivo php !!!!

Estas en el tema de Update masivo php !!!! en el foro de PHP en Foros del Web. Buen día. Como saben, solo hago un tema cuando ya no encuentro nada en la web que me pueda ayudar. Problema: Necesito hacer update en ...
  #1 (permalink)  
Antiguo 23/11/2016, 10:26
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Update masivo php !!!!

Buen día.

Como saben, solo hago un tema cuando ya no encuentro nada en la web que me pueda ayudar.

Problema: Necesito hacer update en varios registros
Que tengo: Bueno lo básico, recupero de la DB y lo pongo en una tabla, en la tabla hay un campo el cual necesito que se modifique, y es el campo del monto. Ese campo lo pongo en un input para que sea modificable.

Código PHP:
<input name="name[]" type="text" id="name" value="<?php echo $rows['name']; ?>">
He buscado en la web y me he topado con algunos ejempos:


En el foreach cambia, el problema es que como no tiene un WHERE id='$id' entonces se cambia en todos los name de la base, lo bueno es que este es un codigo de ejemplo.

Como puedo hacer para que el foreach tome tambien en cuenta la variable del $id porque por mas que quiero meterla no me sale, ahora con un while he intentado modificarlo pero ahi me va peor, entonces que tengo mal ??

PD: cada vez que quiero postear, me manda a resolver captcha y cuando la resuelvo me envia a http://www.forosdelweb.com/newthread...ostthread&f=18

En serio que me ha costado poder enviar esto, y si no me equivoco el codigo del foreach es quien me da el error, con lo demas todo bien
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #2 (permalink)  
Antiguo 23/11/2016, 10:29
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

De ninguna forma puedo poner el codigo del foreach, siempre me bloquea el mendigo captcha
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #3 (permalink)  
Antiguo 23/11/2016, 10:29
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

este es el codigo que no me dejo pasar en el primer post

Código PHP:

foreach($_POST['name'] as $name){
        
//echo $name.'<br>';
        
$sql1="UPDATE $tbl_name SET name='$name'";
        
$result1=mysql_query($sql1);


        if(
$result1){
        
header("Location:index.php");
        }
        else{
            echo 
'algo salio muy Mal !!!';
        }
    } 
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #4 (permalink)  
Antiguo 23/11/2016, 10:40
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Update masivo php !!!!

allGood = true;

foreach(){

r = someSQL;

if(!r){
echo "WRONG";
allGood = false;
break;
}

}

if(allGood){
redireccionar();
}
  #5 (permalink)  
Antiguo 23/11/2016, 10:47
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

Perdón por la ignorancia, pero esa respuesta tiene algo que ver con mi problema ??

Porque ni idea que quiso escribir
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #6 (permalink)  
Antiguo 23/11/2016, 11:14
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Update masivo php !!!!

Cita:
Iniciado por KATHYU Ver Mensaje
este es el codigo que no me dejo pasar en el primer post

Código PHP:

foreach($_POST['name'] as $name){
        
//echo $name.'<br>';
        
$sql1="UPDATE $tbl_name SET name='$name'";
        
$result1=mysql_query($sql1);


        if(
$result1){
        
header("Location:index.php");
        }
        else{
            echo 
'algo salio muy Mal !!!';
        }
    } 
Estás actualizando una tabla pero de que registro, no te falta el ¿WHERE?
UPDATE $tbl_name
SET name='$name'"
WHERE ?¿?¿?¿
__________________
CHOOO COOO LAAA TEEEEEEEEE
  #7 (permalink)  
Antiguo 23/11/2016, 11:25
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Update masivo php !!!!

baldaweb tienes toda la razón, ni me fijé en el sql.

KATHYU lo hice en pseudocódigo, quita ese break de ahí en todo caso...

allGood = true;
where = 0;

foreach(){

r = someSQL;

if(!r){
where++;
echo "WRONG IN ".WHERE." QUERY \n";
allGood = false;
}

}

if(allGood){
redireccionar();
}
  #8 (permalink)  
Antiguo 23/11/2016, 11:41
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

Cita:
Iniciado por baldaweb Ver Mensaje
Estás actualizando una tabla pero de que registro, no te falta el ¿WHERE?
UPDATE $tbl_name
SET name='$name'"
WHERE ?¿?¿?¿
Si quiera fue tan listo de leer mi primer post ??

Claramente en el primer post expuse que lo que le falta es el WHERE id='' y ese array de los id es lo que no puedo meter en el foreach, ese es el problema genio...



@alvaro_trewhela: Yo se que su intensión tal vez sea ayudar, pero no entiendo su "Pseudocodigo", no se en que parte esta la sentencia update ni en que parte estan los array de id y nombre , es claro que no quiero todo el codigo solo de copiar y pegar, lo mas importante es aprender a hacerlo, pero de verdad que sus respuestas me dejan mas perdida que mi problema principal. Las disculpas del caso.

Gracias.
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #9 (permalink)  
Antiguo 23/11/2016, 12:00
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Update masivo php !!!!

La idea del pseudocódigo es para simplificar la sintaxis, de manera de explicar como debe ser el código, solo debes entenderlo, bueno te dejo la posible solución:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $todoBien = true;
  4. $numero = 0;
  5.  
  6. foreach($_POST['name'] as $name){
  7. $sql1="UPDATE $tbl_name SET name='$name'";
  8. $result1=mysql_query($sql1);
  9.  
  10.     if(!$result1){
  11.     $numero++;
  12.     echo "Algo salió mal con en el nombre número: <b>$numero</b>, nombre: <b>$name</b><br/>";
  13.     $todoBien = false;
  14.     }
  15. }
  16.  
  17. if($todoBien){
  18. header("Location:index.php");
  19. }
  20.  
  21. ?>

Ve como andas con eso...

  #10 (permalink)  
Antiguo 23/11/2016, 12:17
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

Pero ese código hace exactamente lo que yo ya tenia al inicio, toma el ultimo valor y lo actualiza para todos los registros. Porque aun en su código no incluye la sentencia WHERE, que le diga que para cada id debe actualizarlo

Acepto que eso de
Código PHP:
if(!$result1){
    
$numero++;
    echo 
"Algo salió mal con en el nombre número: <b>$numero</b>, nombre: <b>$name</b><br/>";
    
$todoBien false;
    } 
No lo entiendo, pero al final vengo a lo mismo, el update masivo no funciona para cada registro.

Lo que deseo modificar es el monto de cada usuario, una imagen para que entienda mejor
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #11 (permalink)  
Antiguo 23/11/2016, 12:35
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Update masivo php !!!!

Con todo respeto, mi código es totalmente distinto al tuyo... ve y estudia bien ambos códigos. En cuanto al id se me ocurre algo feísimo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $todoBien = true;
  4. $numero = 0;
  5. $id_n = -1;
  6.  
  7. foreach($_POST['name'] as $name){
  8. $id = $_POST["id"][$id_n++];
  9. $sql1="UPDATE $tbl_name SET name='$name' WHERE id='$id'";
  10. $result1=mysql_query($sql1);
  11.  
  12.     if(!$result1){
  13.     $numero++;
  14.     echo "Algo salió mal en el nombre y/o id número: <b>$numero</b>, nombre: <b>$name</b> | id: <b>$id</b><br/>";
  15.     $todoBien = false;
  16.     }
  17. }
  18.  
  19. if($todoBien){
  20. header("Location:index.php");
  21. }
  22.    
  23. ?>

Código HTML:
Ver original
  1. <input name="name[]" type="text" value="<?php echo $rows['name']; ?>" />
  2. <input name="id[]" type="hidden" value="<?php echo $rows['id']; ?>" readonly="readonly" />

  #12 (permalink)  
Antiguo 23/11/2016, 14:13
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

Agradezco su fina ayuda alvaro_trewhela y en efecto su codigo es muy diferente al mio

Pero lo ultimo que puso con el id es lo que me hizo sacar adelante el codigo que yo ya tenia antes.

Código PHP:
<?php
    
include('../system/link.php');
    
$id_record 0;
    foreach(
$_POST['monto'] as $monto){
        
$id $_POST["id"][$id_record++];
    
$sql_update $mysqli->query("UPDATE payroll SET monto='$monto' WHERE id='$id' ");
        
        
$link='payroll_crs.php';
        if (
$sql_update){
            echo
"
                <script>
                    location.replace('$link');
                </script>
                "
;
        }
     }
?>
De nuevo muy agradecida...
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #13 (permalink)  
Antiguo 24/11/2016, 01:44
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Update masivo php !!!!

Cita:
Iniciado por KATHYU Ver Mensaje
Agradezco su fina ayuda alvaro_trewhela y en efecto su codigo es muy diferente al mio

Pero lo ultimo que puso con el id es lo que me hizo sacar adelante el codigo que yo ya tenia antes.

Código PHP:
<?php
    
include('../system/link.php');
    
$id_record 0;
    foreach(
$_POST['monto'] as $monto){
        
$id $_POST["id"][$id_record++];
    
$sql_update $mysqli->query("UPDATE payroll SET monto='$monto' WHERE id='$id' ");
        
        
$link='payroll_crs.php';
        if (
$sql_update){
            echo
"
                <script>
                    location.replace('$link');
                </script>
                "
;
        }
     }
?>
De nuevo muy agradecida...
Hola genio, al final has puesto el where, me alegra saberlo.

Saludos.
__________________
CHOOO COOO LAAA TEEEEEEEEE
  #14 (permalink)  
Antiguo 24/11/2016, 09:03
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

Cita:
Iniciado por baldaweb Ver Mensaje
Hola genio, al final has puesto el where, me alegra saberlo.

Saludos.
jjajajajsasldkaslkñdkasñl


Es que usted nunca entendió (no se si ya entendio al final) que nunca fue el WHERE el problema
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #15 (permalink)  
Antiguo 24/11/2016, 11:18
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Update masivo php !!!!

Cita:
Iniciado por KATHYU Ver Mensaje
jjajajajsasldkaslkñdkasñl


Es que usted nunca entendió (no se si ya entendio al final) que nunca fue el WHERE el problema


Sin el where actualizas todos los registros, es algo lógico no?

Si pones el where (o wherein... o lo que quieras) acotas que registro o registros quieres.

Saludos de un ser inferior a ti.
__________________
CHOOO COOO LAAA TEEEEEEEEE
  #16 (permalink)  
Antiguo 24/11/2016, 13:08
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Update masivo php !!!!

KATHYU en tu código solo basta que una actualización sea correcta para redirigir a otra página, ¿Qué pasa con las demás actualizaciones?
  #17 (permalink)  
Antiguo 24/11/2016, 14:42
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

Cita:
Iniciado por baldaweb Ver Mensaje


Sin el where actualizas todos los registros, es algo lógico no?

Si pones el where (o wherein... o lo que quieras) acotas que registro o registros quieres.

Saludos de un ser inferior a ti.
Parece niña jejeje resentido, mi problema (se lo vuelvo a explicar) nunca fue el WHERE como tal, mi problema era el array con los ID's ya que sin ID's me actualizada en todos si, pero me ponía lo mismo en todo, caso contrario con lo ya solventado, que cada registro lleva si id a la par y todo bien

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
KATHYU en tu código solo basta que una actualización sea correcta para redirigir a otra página, ¿Qué pasa con las demás actualizaciones?
Es una planilla en la cual todos los meses los valores cambian, por ende lo mejor es un solo update para todos los registros, aquellos que no son modificados no sufren ningun cambio
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #18 (permalink)  
Antiguo 24/11/2016, 15:37
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Update masivo php !!!!

Pero debes checkar todos!!! ¿Qué sacas con actualizar 1 si te faltan 4 por actualizar?

De que sirvirian otros inputs que no vas a ocupar.
  #19 (permalink)  
Antiguo 25/11/2016, 04:49
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Update masivo php !!!!

Cita:
Iniciado por KATHYU Ver Mensaje
Parece niña jejeje resentido, mi problema (se lo vuelvo a explicar) nunca fue el WHERE como tal, mi problema era el array con los ID's ya que sin ID's me actualizada en todos si, pero me ponía lo mismo en todo, caso contrario con lo ya solventado, que cada registro lleva si id a la par y todo bien
Debes respetar, sólo te diré eso.

Se te intenta ayudar y ya respondes con aires de superioridad.

Que te vaya bien.

Saludos
__________________
CHOOO COOO LAAA TEEEEEEEEE
  #20 (permalink)  
Antiguo 25/11/2016, 15:42
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Update masivo php !!!!

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Pero debes checkar todos!!! ¿Qué sacas con actualizar 1 si te faltan 4 por actualizar?

De que sirvirian otros inputs que no vas a ocupar.
Nou, al contrario, primero pasan por todos los input actualizando el nuevo valor y luego cuando dan guardar, todos los registros se actualizan, es lo que mas ahorra tiempo al usuario, un solo guardar, sino iria uno por uno y eso quita tiempo.


-------------------------------------------------------------------------------------------------



Cita:
Iniciado por baldaweb Ver Mensaje
Debes respetar, sólo te diré eso.

Se te intenta ayudar y ya respondes con aires de superioridad.

Que te vaya bien.

Saludos
No es superioridad es invitarlo a que andes de opinar siquiera lea, juela y llama irrespeto a que te comparen con una niña ?? si que estas mal, en fin nunca ayudaste en nada.
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.

Etiquetas: masivo, registro, tabla, update, variable
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 11:33.