Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/04/2010, 21:56
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Como podria hacer algo comoe sto.. Urgente y.y

A ver, todo tu código el cual procesa tu form esta dentro de un for que es lo mismo que este dentro del primer while que estas haciendo, ve y vuelve a valorar tu código y veras que realmente haces el trabajo 2 veces

PD Tabula el código y veras lo que te comento...

Código PHP:
Ver original
  1. <HTML>
  2. <HEAD>
  3. <TITLE>edicion_a_la_vez.php</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <h1 align="center">Edición de varios registros a la vez</h1>
  7. <?
  8. //Conexion con la base
  9. include ('conexion.php');
  10.  
  11. if (!$_POST){
  12.     //si no recibo datos de POST, muestro el formulario
  13.  
  14.  
  15.     //extraemos de la base de datos los registros a mostrar
  16.     //Ejecutamos la sentencia SQL, limitando la búsqueda a 80 registros
  17.     $fecha=date('Y-m-d');
  18.     $ssql="select * from inversiones where fechafin<='$fecha' limit 80";
  19.     $result=mysql_query($ssql);
  20.     echo "<form name='formulario' action='funciona5.php' method=post>";
  21.     echo "\n<table align=center>";
  22.     echo "\n<tr><td><b>Nombre</b></td><td><b>plazo</b></td><td><b>ganancia</b></td></tr>";
  23.     $i = 1;
  24.     while ($fila=mysql_fetch_array($result)){
  25.         echo "\n<input type=text name='fecha$i' value='" . $fecha . "'>";
  26.         echo "<tr>";
  27.         echo "\n<input type=text name='email$i' value='" . $fila["email"] . "'>";
  28.         echo "<tr>";
  29.         echo "<tr>";
  30.         echo "\n<input type=hidden name='nombre$i' value='" . $fila["nombre"] . "'>";
  31.         echo "<tr>";
  32.         echo "\n<input type=hidden name='id$i' value='" . $fila["id"] . "'>";
  33.         echo "<tr>";
  34.         echo "<td>" . $fila["nombre"] . "</td>";
  35.         echo "<td><input type=text name='plazo$i' value='" . $fila["plazo"] . "'></td>";
  36.         echo "</tr>";
  37.         echo "<td><input type=text name='ganancia$i' value='" . $fila["ganancia"] . "'></td>";
  38.         echo "</tr>";
  39.         echo "<td><input type=text name='invertido$i' value='" . $fila["invertido"] . "'></td>";
  40.         echo "</tr>";
  41.         echo "<td><input type=text name='renovable$i' value='" . $fila["renovable"] . "'></td>";
  42.         echo "</tr>";
  43.         echo "<td><input type=text name='fechafin$i' value='" . $fila["fechafin"] . "'></td>";
  44.         echo "</tr>";
  45.         $i++;
  46.         $ultimo_mostrado = $fila["nombre"];
  47.     }
  48.  
  49.     echo "\n<tr><td colspan=2 align=center><input type='submit' value='Editar todos'></td></tr>";
  50.     echo "\n</table>";
  51.     echo "\n</form>";
  52.  
  53.     //si se han mostrado registros, (esta parte ya estaba en el codigo que  me base para  ahcerlo. pero  es inecesaria..
  54.     if (isset($ultimo_mostrado))
  55.     echo "\n<br><a href='funciona.php?id_mostrar=" . $ultimo_mostrado . "'>Ver los 10 siguientes</a>";
  56. }else{
  57.  
  58.     //es que he recibido datos de formulario, entonces tengo que recibirlos y actualizar la base de datos
  59.     for ($i=1;$i<=10;$i++){
  60.         //establesco todas las variables.. para cada uno de los que estane n los imput del  formulario.
  61.         $mail2 = "[email protected]";
  62.         $id = $_POST["id" . $i];
  63.         $nombre = $_POST["nombre" . $i];
  64.         $fechaininueva = $_POST["fecha" . $i];
  65.         $plazo = $_POST["plazo" . $i];
  66.         $ganancia = $_POST["ganancia" . $i];
  67.         $invertido = $_POST["invertido" . $i];
  68.         $renovable = $_POST["renovable" . $i];
  69.         $email = $_POST["email" . $i];
  70.         //Aqui empieza el codigo que actualiza las cosas
  71.         $fechafinnueva=date("Y-m-d", strtotime("$fechaininueva + $plazo days"));
  72.         if ($renovable>0){
  73.  
  74.             $ssql = "update inversiones set renovable=renovable-1 where id='$id'";
  75.             if ((mysql_query($ssql))or die(mysql_error()));
  76.             $ssql3 = "update inversiones set fecha='$fechaininueva', fechafin='$fechafinnueva' where id='$id'";
  77.             if ((mysql_query($ssql3))or die(mysql_error()));
  78.             $consulta4=mysql_query("SELECT disponible FROM usuarios WHERE nombre='$nombre'");
  79.             $lado4=mysql_num_rows ($consulta4);
  80.             while($row=mysql_fetch_array($consulta4)){
  81.                 $disponible=$row["disponible"];
  82.             }$ssql2 = "update usuarios set disponible=disponible+'$ganancia' where nombre='$nombre'";
  83.             if ((mysql_query($ssql2))or die(mysql_error()));
  84.             $consulta2=mysql_query("SELECT disponible FROM usuarios WHERE nombre='$nombre'");
  85.             $lado2=mysql_num_rows ($consulta2);
  86.             while($row=mysql_fetch_array($consulta2)){
  87.                 $disponible2=$row["disponible"];
  88.             }
  89.             $query = "INSERT INTO ganancias (nombre, id, fecha, ganancia, disponibleA, disponibleD) VALUES('$nombre','$id','$fechaininueva','$ganancia','$disponible','$disponible2')";
  90.             mysql_query($query) or die(mysql_error());
  91.  
  92.             $ssql8 = "update usuarios set ganado=ganado+'$ganancia' where nombre='$nombre'";
  93.             if ((mysql_query($ssql8))or die(mysql_error()));
  94.             //Aqui se le encia  un msj al usuario despues de haber actualizado.
  95.             $header = 'From: ' . $mail2 . " \r\n";
  96.             $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  97.             $header .= "Mime-Version: 1.0 \r\n";
  98.             $header .= "Content-Type: text/plain";
  99.             $mensaje2 = "Hola " . $nombre . "  Hoy: " . $fechaininueva . "  \r\n";
  100.             $mensaje2 .="\r\n";
  101.             $mensaje2 .= " Has Ganado " . $ganancia . "  Gold de tu inversion en nuestro banco. \r\n";
  102.             $mensaje2 .="\r\n";
  103.             $mensaje2 .= "Ahora tienes:" . $disponible2 . "  Gold en tu cuenta. \r\n";
  104.             $mensaje2 .="\r\n";
  105.             $mensaje2 .= "-Puedes ver cuando sera la  proxima fecha de pago, si seleccionaste renovaciones, en ''Mis Inversiones'' en tu panel de usuario \r\n ";
  106.             $mensaje2 .="\r\n";
  107.             $mensaje2 .="\r\n";
  108.             $mensaje2 .= "-Tambien puedes Revisar ''Mis Ganancias'' en tu panel de usuario. \r\n ";
  109.             $mensaje2 .="\r\n";
  110.             $asunto2 = 'Has ganado Gold con tu inversion!.';
  111.             mail($email, $asunto2, utf8_decode($mensaje2), $header);
  112.  
  113.         } elseif ($renovable==0) {
  114.             $consulta4=mysql_query("SELECT disponible FROM usuarios WHERE nombre='$nombre'");
  115.             $lado4=mysql_num_rows ($consulta4);
  116.             while($row=mysql_fetch_array($consulta4)){
  117.                 $disponible=$row["disponible"];
  118.             }
  119.             $query = "UPDATE usuarios SET disponible = disponible+'$ganancia'+'$invertido' where nombre='$nombre'";
  120.             mysql_query($query) or die(mysql_error());
  121.  
  122.             $consulta2=mysql_query("SELECT disponible FROM usuarios WHERE nombre='$nombre'");
  123.             $lado2=mysql_num_rows ($consulta2);
  124.             while($row=mysql_fetch_array($consulta2)){
  125.                 $disponible2=$row["disponible"];
  126.             }
  127.             $query = "INSERT INTO ganancias (nombre, id, fecha, ganancia, disponibleA, disponibleD) VALUES('$nombre','$id','$fechaininueva','$ganancia','$disponible','$disponible2')";
  128.             mysql_query($query) or die(mysql_error());
  129.             //Aqui se borra el  usuario ya que no tiene mas renovaciones..  se borra para q deje de existir en la  tabla  inversiones y asi no lo vuelva a tomar en cuenta..
  130.             $ssql8 = "update usuarios set ganado=ganado+'$ganancia' where nombre='$nombre'";
  131.             if ((mysql_query($ssql8))or die(mysql_error()));
  132.             //Se envia  el  el  mismo mensaje pero esta  ves  es  para los usuarios que ya  no  le quedan inversiones
  133.             $header = 'From: ' . $mail2 . " \r\n";
  134.             $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  135.             $header .= "Mime-Version: 1.0 \r\n";
  136.             $header .= "Content-Type: text/plain";
  137.             $mensaje = "Hola " . $nombre . "  Hoy: " . $fechaininueva . "  \r\n";
  138.             $mensaje ."\r\n";
  139.             $mensaje .= " Tu inversion con ID " . $id . "  A FINALIZADO!\r\n";
  140.             $mensaje .="\r\n";
  141.             $mensaje .= "-Has Ganado " . $ganancia . "  y te hemos  devuelto lo  invertido ".$invertido." Gold  \r\n ";
  142.             $mensaje .="\r\n";
  143.             $mensaje .= "Ahora tienes:" . $disponible2 . "  Gold en tu cuenta. \r\n";
  144.             $mensaje .="\r\n";
  145.             $mensaje .= "-Vuelve a invertir en Nuestro Banco! , Revisa esta inversion en Inversiones Finalizadas, en ''Mis Inversiones'' en tu panel de usuario \r\n ";
  146.             $mensaje .="\r\n";
  147.             $mensaje .= "-Tambien puedes Revisar ''Mis Ganancias'' en tu panel de usuario. \r\n ";
  148.             $mensaje .="\r\n";
  149.             $asunto = 'Inversion Finalizada! Has ganado Gold con tu inversion!.';
  150.             mail($email, $asunto, utf8_decode($mensaje), $header);
  151.             $ssql898 = "update invcul set nombre='$nombre' where id='$id'";
  152.             if ((mysql_query($ssql898))or die(mysql_error()));
  153.             $query76 ="delete from inversiones where id='$id'";
  154.             if ((mysql_query($query76))or die(mysql_error()));
  155.  
  156.         }
  157.     }
  158. }   //Aqui abajo  esta el  script.. que  al pasar 10 segundos envia el  form
  159. ?>
  160. <script>
  161. function sumit()
  162. {
  163. document.formulario.submit();  
  164. }
  165. setTimeout ("sumit()", 10000);  
  166. </script>
  167. </BODY>
  168. </HTML>

Ves como todo el código esta dentro de un for que hace exactamente lo mismo que el primer while
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)