Foros del Web » Programando para Internet » PHP »

Problema con UPDATE (varias filas en db)

Estas en el tema de Problema con UPDATE (varias filas en db) en el foro de PHP en Foros del Web. Hola, quiero actualizar los valores de varias filas en la db, pero no soy capaz. Si actualizo uno a uno si que puedo pero si ...
  #1 (permalink)  
Antiguo 01/06/2011, 14:28
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Pregunta Problema con UPDATE (varias filas en db)

Hola, quiero actualizar los valores de varias filas en la db, pero no soy capaz. Si actualizo uno a uno si que puedo pero si actualizo varios no. Esto es lo que hago:
Código PHP:
Ver original
  1. <form name="moderar" action="moderar.php" method="post" />
  2. <input type="text" name="nombre" value="'. $jugadores['nombre'] .'" />
  3. <select name="equipo">
  4.         <option name="No est&aacute en la liga">No est&aacute en la liga</option>
  5.         <option name="F.C. Barcelona">F.C. Barcelona</option>
  6.         <option name="Real Betis B. S.">Real Betis B. S.</option>
  7.         </select>
  8. <select name="posicion">
  9.         <option name="'. $jugadores['posicion'] .'">'. $jugadores['posicion'] .'</option>
  10.         <option name="portero">portero</option>
  11.         <option name="defensa">defensa</option>
  12.          <input class="inputtextfocus" type="text" name="jornadas_lesion" value="'. $jugadores['lesion'] .'" />
  13. </select>
  14.         <input type="submit" name="moderar" style="width:100px;" tabindex="6" value="Moderar" />
  15. </form>
Las variables las obtengo de la bd previamente.
Código PHP:
Ver original
  1. if(isset($_POST['moderar']))
  2. {
  3. if(($_POST['nombre']!="") && ($_POST['equipo']!="") && ($_POST['valormercado']!="") && ($_POST['estado']!="") && ($_POST['posicion']!="") && ($_POST['valormercado']!=""))
  4.         {
  5.         $nombre=$_POST['nombre'];
  6.         $equipo=$_POST['equipo'];
  7.         $valorm=$_POST['valormercado'];
  8.         $estado=$_POST['estado'];
  9.         $posicion=$_POST['posicion'];  
  10.         $id=$jugadores['id'];
  11.         $valormercado= str_replace(".","",$valorm);
  12.             if(!is_numeric(number_format($valorm,0,",","."))) {
  13.             $registrado="<span style='color: red;'>El valor del mercado debe ser numérico.</span>";
  14.             @mysql_free_result($comprob); //liberamos la memoria del query a la db
  15.             }
  16.             else
  17.             {
  18.  
  19.             $registrado="El jugador ha sido actualizado con éxito.";
  20. mysql_query("UPDATE players SET equipo='$equipo',valormercado='$valormercado',estado='$estado',posicion='$posicion'  WHERE nombre='$nombre'");
  21.             $juga=mysql_query("SELECT * FROM players ORDER BY id DESC LIMIT 15" ,$conectar);
  22. }  
  23. }
  24.      else
  25.         {
  26.             $registrado="<span style='color: red;'>Faltan campos por cubrir.</span>";
  27. }
  28. }
__________________
no hay justicia si la guerra esta justificada
  #2 (permalink)  
Antiguo 01/06/2011, 14:32
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Problema con UPDATE (varias filas en db)

hola que tal podrias utilizas un ciclo while en el cual indicas tus parametros para poder realizar la consulta

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 01/06/2011, 14:35
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

en realidad lo que hago es un while para obtener los datos, aqui no lo puse porque es demasiado largo:
este es parte del codigo que uso:
Código PHP:
Ver original
  1. <table align="center" style="margin-top: 10px; margin-bottom: 10px; width: 85%"cellpadding="1px" cellspacing="0">
  2. <tr>
  3. <td class="tablax">Nombre</td><td class="tablax">Equipo</td><td class="tablax"">Posicion</td><td class="tablax">Estado</td><td class="tablax">Motivos</td><td class="tablax">Valor del mercado</td></tr>
  4. <form name="moderar" action="moderar.php" method="post" />
  5.  
  6. <?php
  7. $i = 0 ;  
  8. while ($jugadores=@mysql_fetch_array($juga))
  9. {
  10.  
  11. $color=$i%2;
  12. echo'
  13. <tr class="jugadores-class'. $color .'" onmouseout="this.className=\'jugadores-class'. $color .'\'" onmouseover="this.className=\'coment-class-over\'">
  14. <td class="tablax">
  15.         <input type="text" name="nombre" value="'. $jugadores['nombre'] .'" />
  16. </td>
  17. <td class="tablax">
  18. <select name="equipo">
  19.         <option name="'. $jugadores['equipo'] .'">'. $jugadores['equipo'] .'</option>
  20.         <option name="No est&aacute en la liga">No est&aacute en la liga</option>
  21.         <option name="Athletic Club">Athletic Club</option>
  22.         </select>
  23. </td>
  24. <td class="tablax">
  25. <select name="posicion">
  26.         <option name="'. $jugadores['posicion'] .'">'. $jugadores['posicion'] .'</option>
  27.         <option name="portero">portero</option>
  28.         <option name="defensa">defensa</option>
  29.         <option name="medio">medio</option>
  30.         <option name="delantero">delantero</option>
  31. </select>
  32. </td>
  33. <td class="tablax">
  34. <select name="estado">
  35.         <option name="'. $jugadores['estado'] .'">'. $jugadores['estado'] .'</option>
  36.         <option name="lesionado">lesionado</option>
  37.         <option name="ausente">ausente</option>
  38.         <option name="activo">activo</option>
  39. </select>
  40.        
  41. </td>
  42. <td class="tablax">';
  43.          if($jugadores['lesion']!=""){
  44.          echo '
  45.          <input class="inputtextfocus" type="text" name="jornadas_lesion" value="'. $jugadores['lesion'] .'" />
  46.          ' ;
  47.         }
  48.         else
  49.         {
  50.          echo'
  51.         <input class="inputtextfocus" type="text" name="lesion" value="Tipo de lesión(si existe)"  onfocus="if (this.value == \'Tipo de lesión(si existe)\') {this.value = \'\';}" onblur="if (this.value == \'\') {this.value = \'Tipo de lesión(si existe)\';}" />
  52.           ' ;
  53.          }
  54.        
  55.          if($jugadores['jornadas_lesion']!=""){
  56.          echo '
  57.          <input class="inputtextfocus" type="text" name="jornadas_lesion" value="'. $jugadores['jornadas_lesion'] .'" />
  58.          ' ;
  59.         }
  60.         else{
  61.         echo'
  62. <input class="inputtextfocus" type="text" name="jornadas_lesion" value="Días de lesión(si existe)"  onfocus="if (this.value == \'Días de lesión(si existe)\') {this.value = \'\';}" onblur="if (this.value == \'\') {this.value = \'Días de lesión(si existe)\';}" />
  63.           ' ;
  64.          }
  65.          echo '
  66. </td>
  67. </td>
  68. <td class="tablax">
  69. <input type="text" name="valormercado" value="'. number_format($jugadores['valormercado'],0,",",".") .'" />
  70. </td>
  71. </tr>'
  72. ;
  73. /*           <input type="text" value="Escribe tu b&uacute;squeda" name="s" id="s" onFocus="if (this.value == 'Escribe tu b&uacute;squeda') {this.value = '';}" onBlur="if (this.value == '') {this.value = 'Escribe tu b&uacute;squeda';}"/> */
  74. /*value="nº de jornadas lesionado" onfocus="if(this.value==\'nº\')this.value=\'\'"*/
  75. $i ++ ;
  76. }
  77. ?>
  78.         <input type="submit" name="moderar" style="width:100px;" tabindex="6" value="Moderar" />
  79. </form>
  80. </table>
__________________
no hay justicia si la guerra esta justificada
  #4 (permalink)  
Antiguo 01/06/2011, 14:40
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema con UPDATE (varias filas en db)

Disculpa no entendi, que no hace? ahi estas haciendo un UPDATE a todos los que lleven por nombre lo que pones en el input no?.

Y porque la validación no la haces del lado del cliente? (javascript)
  #5 (permalink)  
Antiguo 01/06/2011, 14:44
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

no me actualiza ningun dato, pero si obtengo los datos limitandolos a 1 si me los actualiza
__________________
no hay justicia si la guerra esta justificada
  #6 (permalink)  
Antiguo 01/06/2011, 14:46
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Problema con UPDATE (varias filas en db)

A lo que me refiero es que tu deseas modificar varias lineas cuando obtienes tus variables.

Código :
Ver original
  1. actualizar los valores de varias filas en la db, pero no soy capaz. Si actualizo uno a uno si que puedo pero si actualizo varios

o a que te refieres con eso?
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #7 (permalink)  
Antiguo 01/06/2011, 14:52
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

mira la imagen, obtengo los datos, y los imprimo dentro de un form, y lo que quiero es modificar varias lineas.
__________________
no hay justicia si la guerra esta justificada
  #8 (permalink)  
Antiguo 01/06/2011, 14:54
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema con UPDATE (varias filas en db)

Si metes esen query a tu base de datos con algun SMBD si actualiza?

Otra preguntotota, haces un while en donde muestras una tabla con los jugadores cada uno con sus inputs (text, select, etc), todos los inputs tienen el mismo nombre? es decir tienes por ejemplo un
Código HTML:
<input class="inputtextfocus" type="text" name="jornadas_lesion" value="'. $jugadores['lesion'] .'" /> 
cuando ese nombre "jornadas_lesion" se va a repetir en ese input de todos los jugadores.
  #9 (permalink)  
Antiguo 01/06/2011, 15:00
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

si, imprimo los inputs todos con el mismo nombre
__________________
no hay justicia si la guerra esta justificada
  #10 (permalink)  
Antiguo 01/06/2011, 15:02
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema con UPDATE (varias filas en db)

Cita:
Iniciado por PabloPF Ver Mensaje
si, imprimo los inputs todos con el mismo nombre
Ahi esta el error, los nombres de los objetos deben ser unicos a menos que sean arreglos.

Por eso debes de tratarlos como arreglos es decir el input que se llama jornada_lesion deberia ser jornada_lesion[] y al recibirlos y procesarlos en PHP tratarlos como arreglos.

Aqui andamos para cualquier duda
  #11 (permalink)  
Antiguo 01/06/2011, 15:04
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

este es el html que me queda:
Código HTML:
Ver original
  1. <table align="center" style="margin-top: 10px; margin-bottom: 10px; width: 85%"cellpadding="1px" cellspacing="0">
  2. <tr>
  3.  
  4. <td class="tablax">Nombre</td><td class="tablax">Equipo</td><td class="tablax"">Posicion</td><td class="tablax">Estado</td><td class="tablax">Motivos</td><td class="tablax">Valor del mercado</td></tr>
  5. <form name="moderar" action="moderar.php" method="post" />
  6.  
  7.  
  8. <tr class="jugadores-class0" onmouseout="this.className='jugadores-class0'" onmouseover="this.className='coment-class-over'">
  9. <td class="tablax">
  10.         <input type="text" name="nombre" value="Ustari" />
  11. </td>
  12. <td class="tablax">
  13. <select name="equipo">
  14.  
  15.         <option name="Getafe C.F.">Getafe C.F.</option>
  16.         <option name="No est&aacute en la liga">No est&aacute en la liga</option>
  17.         <option name="Athletic Club">Athletic Club</option>
  18.         </select>
  19.  
  20. </td>
  21. <td class="tablax">
  22. <select name="posicion">
  23.         <option name="defensa">defensa</option>
  24.         <option name="portero">portero</option>
  25.         <option name="defensa">defensa</option>
  26.         <option name="medio">medio</option>
  27.         <option name="delantero">delantero</option>
  28.  
  29. </select>
  30. </td>
  31. <td class="tablax">
  32. <select name="estado">
  33.         <option name="lesionado">lesionado</option>
  34.         <option name="lesionado">lesionado</option>
  35.         <option name="ausente">ausente</option>
  36.         <option name="activo">activo</option>
  37. </select>
  38.  
  39.        
  40. </td>
  41. <td class="tablax">
  42.          <input class="inputtextfocus" type="text" name="jornadas_lesion" value="Rotura de ligamento cruzado anterior" />
  43.          
  44.          <input class="inputtextfocus" type="text" name="jornadas_lesion" value="5" />
  45.          
  46. </td>
  47. </td>
  48. <td class="tablax">
  49. <input type="text" name="valormercado" value="2.500.000" />
  50. </td>
  51. </tr>
  52. <tr class="jugadores-class1" onmouseout="this.className='jugadores-class1'" onmouseover="this.className='coment-class-over'">
  53. <td class="tablax">
  54.         <input type="text" name="nombre" value="David Villa" />
  55.  
  56. </td>
  57. <td class="tablax">
  58. <select name="equipo">
  59.         <option name="F.C. Barcelona">F.C. Barcelona</option>
  60.         <option name="No est&aacute en la liga">No est&aacute en la liga</option>
  61.         <option name="Athletic Club">Athletic Club</option>
  62.         <option name="Athl&eacutetico de Madrid">Athl&eacutetico de Madrid</option>
  63.         </select>
  64. </td>
  65. <td class="tablax">
  66. <select name="posicion">
  67.         <option name="delantero">delantero</option>
  68.         <option name="portero">portero</option>
  69.         <option name="defensa">defensa</option>
  70.         <option name="medio">medio</option>
  71.  
  72.         <option name="delantero">delantero</option>
  73. </select>
  74. </td>
  75. <td class="tablax">
  76. <select name="estado">
  77.         <option name="bien">bien</option>
  78.         <option name="lesionado">lesionado</option>
  79.         <option name="ausente">ausente</option>
  80.         <option name="activo">activo</option>
  81.  
  82. </select>
  83.        
  84. </td>
  85. <td class="tablax">
  86.         <input class="inputtextfocus" type="text" name="lesion" value="Tipo de lesión(si existe)"  onfocus="if (this.value == 'Tipo de lesión(si existe)') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Tipo de lesión(si existe)';}" />
  87.          
  88. <input class="inputtextfocus" type="text" name="jornadas_lesion" value="Días de lesión(si existe)"  onfocus="if (this.value == 'Días de lesión(si existe)') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Días de lesión(si existe)';}" />
  89.          
  90. </td>
  91. </td>
  92. <td class="tablax">
  93. <input type="text" name="valormercado" value="0" />
  94. </td>
  95. </tr>
  96. <tr class="jugadores-class0" onmouseout="this.className='jugadores-class0'" onmouseover="this.className='coment-class-over'">
  97. <td class="tablax">
  98.  
  99.         <input type="text" name="nombre" value="Agüero" />
  100. </td>
  101. <td class="tablax">
  102. <select name="equipo">
  103.         <option name="Athlético de Madrid">Athlético de Madrid</option>
  104.         <option name="No est&aacute en la liga">No est&aacute en la liga</option>
  105.         <option name="Athletic Club">Athletic Club</option>
  106.         <option name="Athl&eacutetico de Madrid">Athl&eacutetico de Madrid</option>
  107.         </select>
  108. </td>
  109. <td class="tablax">
  110. <select name="posicion">
  111.         <option name="delantero">delantero</option>
  112.         <option name="portero">portero</option>
  113.         <option name="defensa">defensa</option>
  114.         <option name="medio">medio</option>
  115.  
  116.         <option name="delantero">delantero</option>
  117. </select>
  118. </td>
  119. <td class="tablax">
  120. <select name="estado">
  121.         <option name="bien">bien</option>
  122.         <option name="lesionado">lesionado</option>
  123.         <option name="ausente">ausente</option>
  124.         <option name="activo">activo</option>
  125.  
  126. </select>
  127.        
  128. </td>
  129. <td class="tablax">
  130.         <input class="inputtextfocus" type="text" name="lesion" value="Tipo de lesión(si existe)"  onfocus="if (this.value == 'Tipo de lesión(si existe)') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Tipo de lesión(si existe)';}" />
  131.          
  132. <input class="inputtextfocus" type="text" name="jornadas_lesion" value="Días de lesión(si existe)"  onfocus="if (this.value == 'Días de lesión(si existe)') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Días de lesión(si existe)';}" />
  133.          
  134. </td>
  135. </td>
  136. <td class="tablax">
  137. <input type="text" name="valormercado" value="20" />
  138. </td>
  139. </tr>
  140. <tr class="jugadores-class1" onmouseout="this.className='jugadores-class1'" onmouseover="this.className='coment-class-over'">
  141. <td class="tablax">
  142.  
  143.         <input type="text" name="nombre" value="Llorente" />
  144. </td>
  145. <td class="tablax">
  146. <select name="equipo">
  147.         <option name="Athletic Club">Athletic Club</option>
  148.         <option name="No est&aacute en la liga">No est&aacute en la liga</option>
  149.         <option name="Athletic Club">Athletic Club</option>
  150.         </select>
  151. </td>
  152. <td class="tablax">
  153. <select name="posicion">
  154.         <option name="delantero">delantero</option>
  155.         <option name="portero">portero</option>
  156.         <option name="defensa">defensa</option>
  157.         <option name="medio">medio</option>
  158.  
  159.         <option name="delantero">delantero</option>
  160. </select>
  161. </td>
  162. <td class="tablax">
  163. <select name="estado">
  164.         <option name="bien">bien</option>
  165.         <option name="lesionado">lesionado</option>
  166.         <option name="ausente">ausente</option>
  167.         <option name="activo">activo</option>
  168.  
  169. </select>
  170.        
  171. </td>
  172. <td class="tablax">
  173.         <input class="inputtextfocus" type="text" name="lesion" value="Tipo de lesión(si existe)"  onfocus="if (this.value == 'Tipo de lesión(si existe)') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Tipo de lesión(si existe)';}" />
  174.          
  175. <input class="inputtextfocus" type="text" name="jornadas_lesion" value="Días de lesión(si existe)"  onfocus="if (this.value == 'Días de lesión(si existe)') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Días de lesión(si existe)';}" />
  176.          
  177. </td>
  178. </td>
  179. <td class="tablax">
  180. <input type="text" name="valormercado" value="15" />
  181. </td>
  182. </tr>
  183. <tr class="jugadores-class0" onmouseout="this.className='jugadores-class0'" onmouseover="this.className='coment-class-over'">
  184. <td class="tablax">
  185.  
  186.         <input type="text" name="nombre" value="Kaka" />
  187. </td>
  188. <td class="tablax">
  189. <select name="equipo">
  190.         <option name="Real Madrid">Real Madrid</option>
  191.         <option name="No est&aacute en la liga">No est&aacute en la liga</option>
  192.         <option name="Athletic Club">Athletic Club</option>
  193.         </select>
  194. </td>
  195. <td class="tablax">
  196. <select name="posicion">
  197.         <option name="delantero">delantero</option>
  198.         <option name="portero">portero</option>
  199.         <option name="defensa">defensa</option>
  200.         <option name="medio">medio</option>
  201.  
  202.         <option name="delantero">delantero</option>
  203. </select>
  204. </td>
  205. <td class="tablax">
  206. <select name="estado">
  207.         <option name="bien">bien</option>
  208.         <option name="lesionado">lesionado</option>
  209.         <option name="ausente">ausente</option>
  210.         <option name="activo">activo</option>
  211.  
  212. </select>
  213.        
  214. </td>
  215. <td class="tablax">
  216.         <input class="inputtextfocus" type="text" name="lesion" value="Tipo de lesión(si existe)"  onfocus="if (this.value == 'Tipo de lesión(si existe)') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Tipo de lesión(si existe)';}" />
  217.          
  218. <input class="inputtextfocus" type="text" name="jornadas_lesion" value="Días de lesión(si existe)"  onfocus="if (this.value == 'Días de lesión(si existe)') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Días de lesión(si existe)';}" />
  219.          
  220. </td>
  221. </td>
  222. <td class="tablax">
  223. <input type="text" name="valormercado" value="15.000" />
  224. </td>
  225. </tr>       <input type="submit" name="moderar" style="width:100px;" tabindex="6" value="Moderar" />
  226. </form>
  227.  
__________________
no hay justicia si la guerra esta justificada
  #12 (permalink)  
Antiguo 01/06/2011, 15:06
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

Cita:
Iniciado por gysato Ver Mensaje
Ahi esta el error, los nombres de los objetos deben ser unicos a menos que sean arreglos.

Por eso debes de tratarlos como arreglos es decir el input que se llama jornada_lesion deberia ser jornada_lesion[] y al recibirlos y procesarlos en PHP tratarlos como arreglos.

Aqui andamos para cualquier duda
tratarlos como arreglos...no se como hacerlo, explicame por favor
__________________
no hay justicia si la guerra esta justificada
  #13 (permalink)  
Antiguo 01/06/2011, 15:15
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema con UPDATE (varias filas en db)

Cita:
Iniciado por PabloPF Ver Mensaje
tratarlos como arreglos...no se como hacerlo, explicame por favor
Mira. Cuando haces el While usas un incremento "i", pon a todos los nombres de los inputs [i] al final del nombre. Ejemplo
Código:
<input type="text" name="jornada_lesion[i]">
Con eso cada jugador va a tener su propio input text "jornada_lesion":

Jugardor 1 => jornada_lesion[0]
Jugardor 2 => jornada_lesion[1]
....

Y en PHP lo que haras es un for de esta manera:

Código PHP:
if(isset($_POST['cualquier_input']))
{
$limite count($_POST['cualquier_input']); //Contamos cuantos elementos tiene el arreglo (cuantos jugadores con ese input hay)
for($i=0;$i<$limite;$i++)
{
$post1 $_POST['input1']; //Asignamos a variables los POST para poderlos procesar como arreglos
....
mysql_query("UPDATE tabla SET campo1='$post1[i]',campo2='$post2[i]' WHERE campo_unico='$postID[i]'"); //Ejecutamos la consulta
}

Olvide algo No puedes hacerlo por nombre, tienes que hacerlo por su Campo único (ID) de la tabla para eso creas un <input type="hidden" name="id[]" value="<?php echo $jugadores['campo_unico']; ?>">

Con eso debe quedar. Cualquier duda seguimos...

Última edición por gysato; 01/06/2011 a las 15:20
  #14 (permalink)  
Antiguo 02/06/2011, 14:22
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

lo he puesto asi:
Código PHP:
Ver original
  1. $limite = count($_POST['moderar']);
  2.         for($o="0";$o<$limite;$o++)
  3. {
  4.         $nombre.$o=$_POST["'nombre$o'"];
  5.         $equipo.$o=$_POST["'equipo$o'"];
  6.         $valorm.$o=$_POST["'valormercado$o'"];
  7.         $estado.$o=$_POST["'estado$o'"];
  8.         $posicion.$o=$_POST["'posicion$o'"];   
  9.         $posicion.$o=$_POST["'posicion$o'"];   
  10.         $valormercado= str_replace(".","",$valorm.$o');
  11.         mysql_query("UPDATE players SET equipo='$equipo.$o',valormercado='$valormercado.$o',estado='$estado.$o',posicion='$posicion.$o'  WHERE nombre='$nombre.$o'");
pero me da este error:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
__________________
no hay justicia si la guerra esta justificada

Última edición por PabloPF; 02/06/2011 a las 14:30
  #15 (permalink)  
Antiguo 02/06/2011, 14:35
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema con UPDATE (varias filas en db)

Los post no necesitan llevar el incremento y luego a $o en el FOR lo declaras como string...

Te corrijo quedaria asi:

Código PHP:
$limite count($_POST['moderar']);
        for(
$o=0;$o<$limite;$o++)
{
        
$nombre=$_POST["nombre"];
        
$equipo=$_POST["equipo"];
        
$valorm=$_POST["valormercado"];
        
$estado=$_POST["'estado'"];
        
$posicion=$_POST["posicion"];    
        
$posicion=$_POST["posicion"];    
        
$valormercadostr_replace(".","",$valorm);
        
mysql_query("UPDATE players SET equipo='$equipo[$o]',valormercado='$valormercado[$o]',estado='$estado[$o]',posicion='$posicion[$o]'  WHERE nombre='$nombre[$o]'"); 
Y observaciones:

1.- No se puede concatenar variabes asi $variable1.$variable2...
2.- Los $_POST todos son arreglos no variables con terminacion numerica puse $_POST['input1'] en el ejemplo porque me referia a _POST["'nombre'"].
3.- Y como son arreglos los tratas como tal osea $arreglo[0], $arreglo[1], ....

4.- Actualiza por llave primaria en su base de datos y no por nombre, es decir en la tabla de jugadores agregale un ID (Primary_key), en tu formulario agrega un <input type='hidden' name='id[]' value='<?php echo $jugadores["id"]; ?>' /> para que lo recibas asi:

Código PHP:
$limite count($_POST['moderar']);
        for(
$o=0;$o<$limite;$o++)
{
        
$ID=$_POST["ID"];
        
$equipo=$_POST["equipo"];
        
$valorm=$_POST["valormercado"];
        
$estado=$_POST["estado'"];
        
$posicion=$_POST["posicion"];    
        
$posicion=$_POST["posicion"];    
        
$valormercadostr_replace(".","",$valorm);
        
mysql_query("UPDATE players SET equipo='$equipo[$o]',valormercado='$valormercado[$o]',estado='$estado[$o]',posicion='$posicion[$o]'  WHERE ID='$ID[$o]'"); 
Ya que si dos jugadores se llaman igual a los dos los actualizara con los mismo datos....
Salu2

Última edición por gysato; 02/06/2011 a las 14:41
  #16 (permalink)  
Antiguo 02/06/2011, 15:11
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

lo pongo asi pero no me cambia los registros
__________________
no hay justicia si la guerra esta justificada
  #17 (permalink)  
Antiguo 02/06/2011, 15:15
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema con UPDATE (varias filas en db)

Cita:
Iniciado por PabloPF Ver Mensaje
lo pongo asi pero no me cambia los registros
asi como?

:D
  #18 (permalink)  
Antiguo 02/06/2011, 15:16
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

como tu me pusiste:
Código PHP:
Ver original
  1. $limite = count($_POST['moderar']);
  2.         for($o=0;$o<$limite;$o++)
  3. {
  4.         $ID=$_POST["ID"];
  5.         $equipo=$_POST["equipo"];
  6.         $valorm=$_POST["valormercado"];
  7.         $estado=$_POST["estado'"];
  8.         $posicion=$_POST["posicion"];    
  9.         $posicion=$_POST["posicion"];    
  10.         $valormercado= str_replace(".","",$valorm);
  11.         mysql_query("UPDATE players SET equipo='$equipo[$o]',valormercado='$valormercado[$o]',estado='$estado[$o]',posicion='$posicion[$o]'  WHERE ID='$ID[$o]'");
__________________
no hay justicia si la guerra esta justificada
  #19 (permalink)  
Antiguo 02/06/2011, 15:18
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema con UPDATE (varias filas en db)

Cita:
Iniciado por PabloPF Ver Mensaje
como tu me pusiste:
Código PHP:
Ver original
  1. $limite = count($_POST['moderar']);
  2.         for($o=0;$o<$limite;$o++)
  3. {
  4.         $ID=$_POST["ID"];
  5.         $equipo=$_POST["equipo"];
  6.         $valorm=$_POST["valormercado"];
  7.         $estado=$_POST["estado'"];
  8.         $posicion=$_POST["posicion"];    
  9.         $posicion=$_POST["posicion"];    
  10.         $valormercado= str_replace(".","",$valorm);
  11.         mysql_query("UPDATE players SET equipo='$equipo[$o]',valormercado='$valormercado[$o]',estado='$estado[$o]',posicion='$posicion[$o]'  WHERE ID='$ID[$o]'");
Ya creaste el input oculto?
Ya agregaste la Columna ID como primary_key y auto_increment en la tabla?
  #20 (permalink)  
Antiguo 02/06/2011, 15:21
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

si, pero en el form pongo:
Código PHP:
Ver original
  1. name="jornadas_lesion['.$o.']"
entonces no deberia poner:
Código PHP:
Ver original
  1. $ID=$_POST["ID"];
  2.         $equipo=$_POST["equipo[$o]"];
  3.         $valorm=$_POST["valormercado[$o]"];
  4.         $estado=$_POST["estado[$o]"];
  5.         $posicion=$_POST["posicion[$o]"];    
  6.         $posicion=$_POST["posicion[$o]"];
__________________
no hay justicia si la guerra esta justificada
  #21 (permalink)  
Antiguo 02/06/2011, 15:27
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema con UPDATE (varias filas en db)

No en el los inputs de tu formulario solo termina con corchetes:

Código:
name="jornadas_lesion[]"
y esto

Código PHP:
$ID=$_POST["ID"];
        
$equipo=$_POST["equipo"];
        
$valorm=$_POST["valormercado"];
        
$estado=$_POST["estado'"];
        
$posicion=$_POST["posicion"];    
        
$posicion=$_POST["posicion"
;

es solo para no poner

Código PHP:
$_POST["ID"][$o
  #22 (permalink)  
Antiguo 02/06/2011, 15:44
Avatar de PabloPF  
Fecha de Ingreso: mayo-2011
Ubicación: Ciudadano de un lugar llamado mundo!
Mensajes: 137
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema con UPDATE (varias filas en db)

lo pongo como me dices, pero sigue sin funcionarme
__________________
no hay justicia si la guerra esta justificada

Etiquetas: filas, 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 18:41.