Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] update dentro de un while

Estas en el tema de update dentro de un while en el foro de PHP en Foros del Web. Hola que tal, Tengo un select y voy recorriendo cada registro con un while.. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $query = $mysqli -> query ...
  #1 (permalink)  
Antiguo 05/08/2014, 06:02
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 12 años, 10 meses
Puntos: 4
Pregunta update dentro de un while

Hola que tal,
Tengo un select y voy recorriendo cada registro con un while..
Código PHP:
Ver original
  1. $query = $mysqli->query("SELECT *,                             
  2.                                 SUBSTRING_INDEX(clave, '_', 1) Clveuno,
  3.                                 SUBSTRING_INDEX(SUBSTRING(clave,
  4.                                 LENGTH(SUBSTRING_INDEX(clave, '_', 1)) + 2), '_', 1) - 1 Clvedos,
  5.                                 SUBSTRING_INDEX(nombre, ' ', 1) Nbreuno,
  6.                                 SUBSTRING_INDEX(SUBSTRING(nombre,
  7.                                 LENGTH(SUBSTRING_INDEX(nombre, ' ', 1)) + 2), ' ', 1) - 1 Nbredos
  8.                                 FROM periodos
  9.                                 WHERE idPeriodo > '{$idPeriodo}' AND etapa = '{$etapa}';
  10.                                 ");
  11.  
  12.        
  13.         while($row = $query->fetch_object())
  14.         {
  15.            
  16.             $periodo = $row->periodo - 1;
  17.            
  18.             $clave = $row->Clveuno . "_" . $row->Clvedos;
  19.             echo $clave . "<br />";
  20.  
  21.             $nombre = $row->Nbreuno . " " . $row->Nbredos;
  22.             echo $nombre . "<br />";
  23.            
  24.             $actualiza = $mysqli->query("UPDATE periodos SET periodo = {$periodo}, clave = '{$clave}', nombre = '{$nombre}' WHERE idPeriodo > '{$idPeriodo}' AND etapa = '$etapa'");
  25.             if ($actualiza) {
  26.                     echo "= ) <br>";
  27.             }else{
  28.                     echo "= ( <br>";
  29.             }
  30.            
  31.         }
Pero solo ejecuta el update solo una vez y me gustaría que se ejecutara el update por cada registro..
  #2 (permalink)  
Antiguo 05/08/2014, 06:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: update dentro de un while

Haz dos recorridos uno para leer el select y guardarlo en un array y otro sobre el array para hacer los update.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 05/08/2014, 06:36
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: update dentro de un while

Muchas gracias quimfv,
lo intente pero estoy muy bloqueado me puedes ayudar?
  #4 (permalink)  
Antiguo 05/08/2014, 06:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: update dentro de un while

¿Cuántos registros te devuelve la query? ¿Lo verificaste?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 05/08/2014, 07:54
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: update dentro de un while

ese update tiene condiciones, verificaste que se cumplan?
  #6 (permalink)  
Antiguo 05/08/2014, 20:13
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: update dentro de un while

Gracias por sus respuestas, la cantidad de registros pueden depender...como mínimo 1 y 15 máximo y si verifique las condiciones del update, lo hace correctamente una sola ves.
  #7 (permalink)  
Antiguo 05/08/2014, 21:32
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: update dentro de un while

Y esta solucionado gracias a todos por su ayuda.

Etiquetas: mysql, registro, select, 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 13:31.