Foros del Web » Programando para Internet » PHP »

Al insertar array no respeta la posición en la Bd

Estas en el tema de Al insertar array no respeta la posición en la Bd en el foro de PHP en Foros del Web. Hola a todos tengo problemas al momento de insertar arreglos a mi base de datos Por ejemplo si en mi tabla (donde tengo los resultados ...
  #1 (permalink)  
Antiguo 29/11/2012, 13:09
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Al insertar array no respeta la posición en la Bd

Hola a todos tengo problemas al momento de insertar arreglos a mi base de datos
Por ejemplo si en mi tabla (donde tengo los resultados obtenidos de una consulta)
Tengo lo siguiente:

NO ID NOMBRE VERIFICAR HORA
1 001 XXXX AQUI UN CHECK
2 002 YYYY AQUI UN CHECK


Funciona asi, si en mi form Busqueda se introduze el ID 002 se marca ese check y aparece la hora en que se hallo o marco el check
solo que al momento de insertarlo en mi base de datos no respeta la posicion del check cuyo valor es "bien"

En cambio si inserto el check activo en los dos registros no hay problema, de igual forma al marcar el primer chechk queda en el registro correcto....


Vizualmente este es el error al marcar el segundo check
(bien queda a la altura del primero y va en el segundo)

En el primer caso en mi base quedaria algo asi

NO ID NOMBRE VERIFICAR HORA
1 001 XXXX bien
2 002 YYYY 10:00


este es mi form busqueda
Código PHP:
 <form id="form1" name="form1" method="POST" >
                    <
label style="font-size:14px">ID:
                      <
input type="text" name="ID" id="ID" onKeyPress="return disable_enter(event)"
                    </
label>
                    <
label>
                    <
input type="button" name="buscar2" value="Buscar" onClick="marcar();" />
                    </
label>
                    </
form






ESTA ES MI TABLA (CON VALORES DE UNA CONSULTA)
Código PHP:
<table border="0" >
  <thead>
  <tr>
  <td></td> 
  <td>ID</td>
  <td>NOMBRE</td>
 <td>Estatus</td>
  <td>Hora</td>
  
           
   </tr></thead>
  <?php do { ?>
    <tbody>
      <tr>
      <td ><?php  $i+=1; echo $i;?></td>
     
        <td><div align="left"><?php echo $row['clave']; ?></div>  <input name="clave[]" value="<? echo $row['clave'];?>" hidden> </td>
        <td><div align="left"><?php echo $row['Nombre']; ?></div> <input name="nombre[]" value="<? echo $row['nombre'];?>" hidden></td>
        
   
             
          <td >
      <input type="text" id="hora1<? echo $row['ID'];?>" name="hora1[]"  value="" size="5" style="background-color:#CCC; border:hidden"><br/>
</td>
           <td >
    <input name="aplica[]" value="bien" type="checkbox" <?php if($row['ID'] == $_POST['ID']) echo "checked='checked' "?> id="check<? echo $row['ID'];?>" class="check" /></td> 
   </tbody>
    <?php } while ($rowmysql_fetch_assoc($row)); ?>
</table>

AQUI INSERTO

Código PHP:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
     foreach(
$_POST["nombre"] as $key => $value){
    

  
$insertSQL sprintf("INSERT INTO estatus(ide,  estatus, hora) VALUES (%s,%s,%s)",    
                     
                       
GetSQLValueString($_POST['nombre'][$key],  "text"), 
               
GetSQLValueString($_POST['aplica'][$key], "text"),
               
GetSQLValueString($_POST['hora1'][$key], "text"));
                    

  
mysql_select_db($database_connection$connection);
  
$Result1 mysql_query($insertSQL$connection) or die(mysql_error());
   }







Pues inserta los registros el problema es ese

si activo el check del registros 2 (si el resultado de mi consulta arrojo 2 registros)

en estatus (valor del check aplica)
el valor del check "bien" queda en el primer registro, la hora queda bien en el segundo

GRACIAS POR SU AYUDA

Etiquetas: bd, mysql, registro, sql, tabla
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 14:08.