Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: YamiAlx en 3 Marzo 2013, 03:46 am



Título: Duda php insertar en BD datos de un form que esta en un while
Publicado por: YamiAlx en 3 Marzo 2013, 03:46 am
Pues verán mi duda se presenta en una consulta que estoy haciendo al principio extraigo unos datos que necesito, en un while luego uso otro while para buscar otros datos en un par de tablas sin ningún problema, ahora en el momento de mostrar los datos uso una tabla y en esa tabla un formulario donde guardo las variables php para mostrar valores en ciertos inputs.

Ahora mi problema se genera que cuando realizo el submit para enviar a mi pagina php que me realizara el insert no me llegan los valores que se encuentran en ese formulario, si no que solo me aparece la ultima búsqueda que se realiza en el while y eso que termino usando variables de sesion, ya que con el método post y el request no me genera ningún valor.

Aquí les paso las paginas que uso para esta función, se que el error debe estar en ese while al momento de hacer el submit pero por mas que lo pienso ya llevo un par de dias en esto; gracias por su ayuda igual seguiré intentándolo.

Pagina donde hago las búsquedas y me funciona.
Código
  1.  
  2. <FORM name="form" id="form" method="POST" action="nota.php">
  3.  
  4. <?php
  5. $query12= "SELECT * FROM nota where Id_mate = $grado" or die ;
  6. $resultado12 = $handle->query($query12);
  7.  
  8. while($row = $resultado12->fetch_array(MYSQLI_ASSOC))
  9. {
  10.                $ids = $row['Id_usu_estu'];
  11.         $no1 = $row['Nota1_not'];
  12. $no2 = $row['Nota2_not'];
  13. $no3 = $row['Nota3_not'];
  14. $no4 = $row['Nota4_not'];
  15.  
  16. $query13= "SELECT * FROM terceros where Id_usu = $ids" or die ;
  17. $resultado13 = $handle->query($query13);
  18.  
  19. echo '<tr>';
  20.                  while($row = $resultado13->fetch_array(MYSQLI_ASSOC))
  21. {
  22. $dis1='';
  23.        $dis2='';
  24. $dis3='';
  25. $dis4='';
  26. if($no1>0)
  27. {
  28.      $no1f = $no1 ;
  29. $dis1 = disabled;
  30. }
  31. else if($no1==NULL)
  32. {
  33. $no1f = NR ;
  34. }
  35. else if($no1==0)
  36. {
  37. $no1f = $no1 ;
  38. $dis1 = disabled;
  39. }
  40. else
  41. {
  42. $no1f = NR;
  43. }
  44.  
  45. $nom1 = $row['Nombre1_usu'];
  46. $Ape1 = $row['Apellido1_usu'];
  47.  
  48. echo '<td>',$ids,'</td>','<td>',$nom1,' ', $Ape1,'</td>';
  49. echo '<td><input type=text value='.$no1f.' name="prueba" size=1 '.$dis1.' ></td>';
  50. $not1ff = $no1f;
  51. $_SESSION['variable'] = $not1ff;
  52. echo '<td><input type=text value='.$no2f.' id="naja1" size=1 '.$dis2.'></td>';
  53. $not2ff = $no2f;
  54. $_SESSION['variable2'] = $not2ff;
  55. echo '<td><input type=text value='.$no3f.' id="naja2" size=1 '.$dis3.'></td>';
  56. echo '<td><input type=text value='.$no4f.' id="naja3" size=1 '.$dis4.'></td>';
  57. echo '<td><input type=text value=0 id="nes" size=2 disabled></td>';
  58. echo '<td><input type=submit value="enviar" name="enviar"></td>';
  59.  
  60.  
  61. }
  62. echo '</tr>';
  63.  
  64. }?>
  65.  
  66. </FORM>
  67.  
  68.  


Y la pagina que uso para el insert, pues no la subo toda pq es que los echos que tengo y que mostrara a continuación no me generan nada.


Código
  1.  $handle = db_connect();
  2.  $grado=$_POST[$grado];
  3. echo  $no1 = $_GET['prueba'];
  4.  echo  $no1 = $_POST['prueba'];
  5.   echo  $no1 = $_REQUEST['prueba'];
  6. echo  $no1 = $_GET[$no1f];
  7.  echo  $no1 = $_POST[$no1f];
  8.   echo  $no1 = $_REQUEST[$no1f];
  9. echo  $no1 = $_GET['$no1f'];
  10.  echo  $no1 = $_POST['$no1f'];
  11.   echo  $no1 = $_REQUEST['$no1f'];
  12. echo   $_SESSION['variable2'];
  13.  

Se que se ve muy raro así y redundante, pero lo hago es puramente para probar pero no me sirve nada ._., a por cierto  como esta solo me muestra la $_SESSION['variable2'] solo esa así que al parecer solo me toma la ultima y no las dos.

Muchas gracias si alguien me puede ayudar o si yo encuentro la solución xd


Título: Re: Duda php insertar en BD datos de un form que esta en un while
Publicado por: #!drvy en 3 Marzo 2013, 04:04 am
1. El único campo de las búsquedas que enviara información sera el que se llama "prueba". Recuerda que todos los INPUT deben tener nombre (name) para poder recoger la información correctamente con PHP.

2.
Código
  1. echo  $no1 = $_GET['$no1f'];
  2. echo  $no1 = $_POST['$no1f'];
  3. echo  $no1 = $_REQUEST['$no1f'];

Eso esta mal xD. No puedes meter una variable entre comillas simples.


PD: Ponle nombre a los INPUTS y en vez de poner tanto echo pon simplemente
Código
  1. echo '<pre>';
  2. print_r($_REQUEST);
  3. echo '</pre>';

Recuerda que REQUEST maneja tanto Cookies como POST como get.. Ademas asegúrate de que estas tirando información correcta en la consulta.

Saludos


Título: Re: Duda php insertar en BD datos de un form que esta en un while
Publicado por: YamiAlx en 3 Marzo 2013, 16:53 pm
Si creo que después de un par de días en esto, se me cerraron las ideas; la solución era muy sencilla lo que pasaba es que como des-habilito los campos cuando hay algún valor no me tomaba esos campos, así que lo que hice fue pasarlos por un campo oculto y listo muchas gracias por tu ejemplo me ayudo a despejar mis dudas y darme cuenta donde tenia el problema.


Aquí dejo como quedo dentro del while.
Código
  1. echo '<FORM name="form" id="form" method="POST" action="nota.php"><td><input type=text value='.$no1f.' name="prueba1"  size=1 '.$dis1.'></td>';
  2. echo '<input type="hidden" value='.$no1f.' name="nota1">  ';
  3. echo '<td><input type=text value='.$no2f.' name="prueba2"  size=1 '.$dis2.'></td>';
  4. echo '<input type="hidden" value='.$no2f.' name="nota2">  ';
  5. echo '<td><input type=text value='.$no3f.' name="prueba3"  size=1 '.$dis3.'></td>';
  6. echo '<input type="hidden" value='.$no3f.' name="nota3">  ';
  7. echo '<td><input type=text value='.$no4f.' name="prueba4"  size=1 '.$dis4.'></td>';
  8. echo '<input type="hidden" value='.$no4f.' name="nota4">  ';
  9. echo '<td><input type=text value=0 id="nes" size=2 disabled></td>';
  10. echo '<td><input type=submit value="enviar" name="enviar"></td></FORM>';
  11.  
  12.