Foros del Web » Programando para Internet » PHP »

Modificación en PHP

Estas en el tema de Modificación en PHP en el foro de PHP en Foros del Web. Me estoy complicando un poco a la hora de modificar uno de los registros. Al momento de realizar una modificación primero esta la consulta de ...
  #1 (permalink)  
Antiguo 28/09/2013, 21:36
Avatar de AnGuisi  
Fecha de Ingreso: julio-2013
Ubicación: San Felipe - Yaracuy
Mensajes: 122
Antigüedad: 10 años, 9 meses
Puntos: 2
Modificación en PHP

Me estoy complicando un poco a la hora de modificar uno de los registros.
Al momento de realizar una modificación primero esta la consulta de lo que se desea modificar. Tengo una tabla llamada caracteristicas_hardware con el siguiente diseño.
Código MySQL:
Ver original
  1. `caracteristicas_hardware` (
  2.  
  3.   `observaciones_h` varchar(45) default NULL,
  4.   `tipo_nombre` varchar(45) default NULL,
  5.   `serial` varchar(45) default NULL,
  6.   `id_hardware` varchar(20) default NULL,
  7.  
  8.   KEY `id_hardware` (`id_hardware`)
  9.   )

La cual esta relacionada como pueden ver con la tabla que contiene el atributo o campo "id_hardware" la cual es la siguiente:

Código MySQL:
Ver original
  1. `hardware` (
  2.   `id_hardware` int(20) NOT NULL,
  3.   `tipo_h` varchar(45) default NULL,
  4.   PRIMARY KEY  (`id_hardware`)

La tabla hardware contiene todos los posibles componentes que abarca el hardware asi como: Disco Duro, Memoria Ram, Procesador etc.

La tabla caracteristicas_hardware como pueden observar almacena todas las caracteristicas de dicho hardware cada observacion, serial, etc tiene un id_hardware el cual ayuda a reconocer a que componente exactamente pertenece ese registro.

Sabiendo esto he realizado una consulta plasmando los resultados de la siguiente forma:

Código PHP:
Ver original
  1. <?
  2.       $i = 0;
  3. foreach ($row as $datos) {
  4.        ?>
  5.        
  6.  
  7.       <tr>
  8.      <td><input type="text" id="tipo" name="tipo<? echo $i; ?>" value="<? echo $datos['tipo_h']; ?>" disabled="disabled" />
  9.      
  10.         </td>
  11.        
  12.        
  13.        
  14.         <td><input type="text" class="form" name="serial<? echo $i; ?>" value="<? echo $datos['serial']; ?>" disabled="disabled" /></td>
  15.         <td><input type="text" class="form" name="observaciones_h<? echo $i; ?>" value="<? echo $datos['observaciones_h']; ?>" disabled="disabled" /></td>
  16.        
  17.    </tr>
  18.    
  19.      
  20.  
  21.       <?
  22.       $i++;
  23.        }
  24.        ?>

Puesto a que la tabla contenedora de todo es caracteristicas_hardware solo cuenta con los campos observados se realiza un ciclo que se cumple hasta que no existan mas id_hardware que buscar.

El problema esta en que a la hora de modificar solo modifica el ultimo registro, le he agregado el contador $i para distinguir un registro de otro pero puede existir el caso de que existan 2 o mas tipo_h por lo cual habran 2 o mas observaciones, seriales . Quiero poder relacionar los tipo_h con los seriales y observaciones a la hora de modificar.
  #2 (permalink)  
Antiguo 28/09/2013, 22:30
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: Modificación en PHP

Hola, lo que entiendo de tu problema, es que al actualizar el registro solo se actualiza una carateristica y no todas las existentes.

Si este es el problema, debes tomar en cuenta las siguientes consideraciones.

1.- Para enviar un array de la págian web a php debes usar [] corchetes en el nombre del input. Ejemplo name="serial[]"; te ayudara si el numero caracteristicas incrementan.

Pedes ver la documentacion relacionada aca.
http://www.php.net/manual/es/faq.htm...aq.html.arrays
http://www.php.net/manual/es/languag...s.external.php

2.- No se puede repetir el atributo id de los elementos html.
En tu código se crean filas dependiendo de la cantidad de características y eso te genera id="tipo" reptido.

Saludos
  #3 (permalink)  
Antiguo 29/09/2013, 15:07
Avatar de AnGuisi  
Fecha de Ingreso: julio-2013
Ubicación: San Felipe - Yaracuy
Mensajes: 122
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Modificación en PHP

Eso me acaba de ayudar muchisimo asi puedo eliminar el contador que coloque sin mayores complicaciones. Ahora mi pregunta es si por ejemplo tengo marca[1] y marca[2] y ambas son del tipo DISCO DURO a la hora de realizar la sentencia mysql como se que eso pertenece a DISCO DURO?

Etiquetas: registro, 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 16:31.