Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/11/2011, 00:31
Bier
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Anidar UPDATE dentro de un SELECT (PHP/MySQL)

Mi tabla1 tiene 10 filas, si ejecuto lo siguiente recorre las 10 filas correctamente:
Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT llave, importe FROM tabla1", $link) or die ("Error");
  2.            while ($fila = mysql_fetch_row($consulta)) {
  3.            $llave= $fila[0];
  4.            $total = $fila[1] * 2 ;
  5. echo $llave."<br>";
  6. }

Pero al agregar la instrucción del INSERT (de la siguiente forma), entonces el WHILE solo se realiza para la fila 1, ignorando a las siguientes 9 filas, o sea que al ser ejecutado el INSERT se sale del WHILE.
Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT llave, importe FROM tabla1", $link) or die ("Error");
  2.            while ($fila = mysql_fetch_row($consulta)) {
  3.            $llave= $fila[0];
  4.            $total = $fila[1] * 2 ;
  5. echo $llave."<br>";
  6.  
  7.      $consulta = "INSERT INTO tabla2 (total) VALUES ('$total')";
  8.      $resultado = mysql_query($consulta) or die ("Error");
  9. }

No se como se realiza un INSERT dentro de un WHILE anidado, en otros lenguajes que conozco si se puede, en PHP lo ignoro. Me he asombrado por muchas poderosas instrucciones de PHP que superan a otros "poderosos" lenguajes, por lo que seguro estoy que se debe poder resolver lo que requiero.

En calidad temporal estoy resolviendo mi necesidad con variables de memoria, pero se que no es lo mejor. Cuando logre resolver que un INSERT pueda estar dentro del WHILE seré felíz.

Este planteamiento que requiero es "el pan de cada día" en sistemas administrativos, me llama la atención que nadie me haya aportado alguna idea, no es obligación, pero en otras ocasiones he preguntado y me llega una lluvia de ideas, las cuales siempre agradezco, que ahora no ha sido el caso. ¿Acaso nadie lo ha requerido nunca? ¿Acaso mi planteamiento es incorrecto o no me expliqué? Quiero imaginar que es fin de semana.

Gracias por tu comentario, lo agradezco.