Foros del Web » Programando para Internet » PHP »

Update de un registro en varias filas

Estas en el tema de Update de un registro en varias filas en el foro de PHP en Foros del Web. Amigos ¿Como estan? En esta oportunidad los molesto para solicitarles ayuda, estoy armando un script que actualiza un registro en varias filas a la vez, ...
  #1 (permalink)  
Antiguo 16/04/2011, 06:54
 
Fecha de Ingreso: noviembre-2010
Ubicación: Capital Federal, Buenos Aires
Mensajes: 60
Antigüedad: 13 años, 5 meses
Puntos: 0
Update de un registro en varias filas

Amigos ¿Como estan? En esta oportunidad los molesto para solicitarles ayuda, estoy armando un script que actualiza un registro en varias filas a la vez, en problema es que al hacer click en submit no actualiza los registros ni da error, ¿En donde está el error?


Los archivos son los siguientes:

actualiza.php

Código PHP:
<?php
$host
="localhost"
$username="root"
$password=""
$db_name="sanandre_sap"


mysql_connect("$host""$username""$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="select *
from sistema
where `destacado` = 'Si'
and `estado` = 'Activo'"
;
$result=mysql_query($sql);


$count=mysql_num_rows($result);
?>
<table width="80%" border="0" cellspacing="1" cellpadding="0">
<form name="form" method="post" action="validaredicion.php">
<tr> 
<td>
<table width="80%" border="0" cellspacing="1" cellpadding="0">


<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Tipo de Inmueble</strong></td>
<td align="center"><strong>Tipo de Operacion</strong></td>
<td align="center"><strong>Barrio</strong></td>
<td align="center"><strong>Calle</strong></td>
<td align="center"><strong>Altura</strong></td>
<td align="center"><strong>Actual</strong></td>
<td align="center"><strong>Orden</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><?php $id[]=$rows['id']; ?><?php echo $rows['id']; ?></td>
<td align="center"><?php echo $rows['tipoinmueble']; ?></td>
<td align="center"><?php echo $rows['tipodeoperacion']; ?></td>
<td align="center"><?php echo $rows['barrio']; ?></td>
<td align="center"><?php echo $rows['calle']; ?></td>
<td align="center"><?php echo $rows['altura']; ?></td>
<td align="center"><?php echo $rows['ordendestacado']; ?></td>
<td align="center"><select name="ordendestacado[]">
    <option value='' <?php if($rows['ordendestacado'] == '') echo 'selected="selected"' ?> ></option>
    <option value='1' <?php if($rows['ordendestacado'] == '1') echo 'selected="selected"' ?>>1</option>
    <option value='2' <?php if($rows['ordendestacado'] == '2') echo 'selected="selected"' ?>>2</option>
    <option value='3' <?php if($rows['ordendestacado'] == '3') echo 'selected="selected"' ?>>3</option>
    <option value='4' <?php if($rows['ordendestacado'] == '4') echo 'selected="selected"' ?>>4</option>
    <option value='5' <?php if($rows['ordendestacado'] == '5') echo 'selected="selected"' ?>>5</option>
    <option value='6' <?php if($rows['ordendestacado'] == '6') echo 'selected="selected"' ?>>6</option>
    <option value='7' <?php if($rows['ordendestacado'] == '7') echo 'selected="selected"' ?>>7</option>
    <option value='8' <?php if($rows['ordendestacado'] == '8') echo 'selected="selected"' ?>>8</option>
    <option value='9' <?php if($rows['ordendestacado'] == '9') echo 'selected="selected"' ?>>9</option>
    <option value='10' <?php if($rows['ordendestacado'] == '10') echo 'selected="selected"' ?>>10</option>
    <option value='11' <?php if($rows['ordendestacado'] == '11') echo 'selected="selected"' ?>>11</option>
    <option value='12' <?php if($rows['ordendestacado'] == '12') echo 'selected="selected"' ?>>12</option>
    <option value='13' <?php if($rows['ordendestacado'] == '13') echo 'selected="selected"' ?>>13</option>
    <option value='14' <?php if($rows['ordendestacado'] == '14') echo 'selected="selected"' ?>>14</option>
    <option value='15' <?php if($rows['ordendestacado'] == '15') echo 'selected="selected"' ?>>15</option>
    <option value='16' <?php if($rows['ordendestacado'] == '16') echo 'selected="selected"' ?>>16</option>
    <option value='17' <?php if($rows['ordendestacado'] == '17') echo 'selected="selected"' ?>>17</option>
    <option value='18' <?php if($rows['ordendestacado'] == '18') echo 'selected="selected"' ?>>18</option>
    <option value='19' <?php if($rows['ordendestacado'] == '19') echo 'selected="selected"' ?>>19</option>
    <option value='20' <?php if($rows['ordendestacado'] == '20') echo 'selected="selected"' ?>>20</option>
    <option value='21' <?php if($rows['ordendestacado'] == '21') echo 'selected="selected"' ?>>21</option>
    </select></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="Submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
y el que procesa el query que es:

validaredicion.php

Código PHP:
<?php
$host
="localhost";  
$username="root"
$password=""
$db_name="sanandre_sap"


mysql_connect("$host""$username""$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

if(
$_GET[$i]){
for(
$i=0;$i<$count;$i++){
$sql1="UPDATE sistema SET ordendestacado='$ordendestacado[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);
}
}

if(
$result1){
header("location:ok.php");
}
mysql_close();
?>
Gracias a todos!
  #2 (permalink)  
Antiguo 16/04/2011, 07:11
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 de un registro en varias filas

if($_GET[$i]){ // $i NO TIENE UN VALOR ASIGNADO!!!!!
for($i=0;$i<$count;$i++){
$sql1="UPDATE sistema SET ordendestacado='$ordendestacado[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);
}
}
  #3 (permalink)  
Antiguo 16/04/2011, 07:21
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Update de un registro en varias filas

Bueno comienzo haciendo preguntas, el primer archivo lo de option podria ponerse simplemente con esto
Código PHP:
<select name="ordendestacado"><? for($x 0$x<=21$x++)
?>
    <option value="<?=$x?><?php if($rows['ordendestacado'] == $x)?> selected="selected"><?=$x?></option>
    <?
}
?></select>
Bueno ahora si el segundo archivo, lo siguiente esta mal:
Código PHP:
 if($_GET[$i]) 
Ya que eso no puede ser posible porque nunca le mandas una variable i o no que yo vea en el form e igualmente con lo demas de $ordendestacado, eso tampoco nunca lo declaras para ello hay que utilizar el $_POST, el igual con $count.

El codigo hasta ahi esta mal jeje

EDIT::

Fijate aver si asi te sirve
Código PHP:
Ver original
  1. <?php
  2. $host="localhost";
  3. $username="root";
  4. $password="";
  5. $db_name="sanandre_sap";
  6.  
  7.  
  8. mysql_connect("$host", "$username", "$password")or die("cannot connect");
  9. mysql_select_db("$db_name")or die("cannot select DB");
  10.  
  11. $sql="select *
  12. from sistema
  13. where `destacado` = 'Si'
  14. and `estado` = 'Activo'";
  15. $result=mysql_query($sql);
  16.  
  17.  
  18. $count=mysql_num_rows($result);
  19. ?>
  20. <table width="80%" border="0" cellspacing="1" cellpadding="0">
  21. <form name="form" method="post">
  22. <tr>
  23. <td>
  24. <table width="80%" border="0" cellspacing="1" cellpadding="0">
  25.  
  26.  
  27. <tr>
  28. <td align="center"><strong>Id</strong></td>
  29. <td align="center"><strong>Tipo de Inmueble</strong></td>
  30. <td align="center"><strong>Tipo de Operacion</strong></td>
  31. <td align="center"><strong>Barrio</strong></td>
  32. <td align="center"><strong>Calle</strong></td>
  33. <td align="center"><strong>Altura</strong></td>
  34. <td align="center"><strong>Actual</strong></td>
  35. <td align="center"><strong>Orden</strong></td>
  36. </tr>
  37. <?php
  38. $i = 0;
  39. while($rows=mysql_fetch_array($result)){
  40.     $r[$i]['id'] = $rows['id'];
  41.     $r[$i]['ordendestacado'] = $rows['ordendestacado'];
  42.     $i++;
  43. ?>
  44. <tr>
  45. <td align="center"><?php $id[]=$rows['id']; ?><?php echo $rows['id']; ?></td>
  46. <td align="center"><?php echo $rows['tipoinmueble']; ?></td>
  47. <td align="center"><?php echo $rows['tipodeoperacion']; ?></td>
  48. <td align="center"><?php echo $rows['barrio']; ?></td>
  49. <td align="center"><?php echo $rows['calle']; ?></td>
  50. <td align="center"><?php echo $rows['altura']; ?></td>
  51. <td align="center"><?php echo $rows['ordendestacado']; ?></td>
  52. <td align="center"><select name="ordendestacado"><? for($x = 0; $x<=21; $x++)
  53. { ?>
  54.     <option value="<?=$x?>" <?php if($rows['ordendestacado'] == $x)?> selected="selected"><?=$x?></option>
  55.     <?
  56. }
  57. ?></select></td>
  58. </tr>
  59. <?php
  60. }
  61. ?>
  62. <tr>
  63. <td colspan="4" align="center"><input type="Submit" name="Submit" value="Submit"></td>
  64. </tr>
  65. </table>
  66. </td>
  67. </tr>
  68. </form>
  69. </table>
  70.  
  71. <?php
  72. if(isset($_POST['Submit']))
  73. {
  74.     for($x=0;$x<$count;$x++){
  75.         $sql1="UPDATE sistema SET ordendestacado='".$r[$x]['ordendestacado']."' WHERE id='".$r[$x]['id']."'";
  76.         $result1=mysql_query($sql1);
  77.     }
  78.     if($result1){
  79.         header("location:ok.php");
  80.     }
  81.     mysql_close();
  82. }
  83. ?>

Última edición por s00rk; 16/04/2011 a las 07:30
  #4 (permalink)  
Antiguo 16/04/2011, 08:49
 
Fecha de Ingreso: noviembre-2010
Ubicación: Capital Federal, Buenos Aires
Mensajes: 60
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Update de un registro en varias filas

Gracias a ambos por las respuestas.- s00rk probé último código que pusiste y me da error.- Cuando le hago click en submit no actualiza, se queda igual.-


Gracias a todos!

Última edición por PxHx; 16/04/2011 a las 09:01
  #5 (permalink)  
Antiguo 24/04/2011, 10:38
 
Fecha de Ingreso: noviembre-2010
Ubicación: Capital Federal, Buenos Aires
Mensajes: 60
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Update de un registro en varias filas

En el combo no aparecen los números.- ¿Alguna ayuda?


Gracias!

Etiquetas: filas, registro, 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 15:04.