Foros del Web » Programando para Internet » PHP »

variable...

Estas en el tema de variable... en el foro de PHP en Foros del Web. Tengo dos formularios... Formulario No. 1 En este primer formulario, recojo el numero de campos que deseo mostrar en el Formulario No. 2, es decir.. ...
  #1 (permalink)  
Antiguo 08/01/2004, 16:41
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 22 años
Puntos: 1
Mensaje variable...

Tengo dos formularios...

Formulario No. 1

En este primer formulario, recojo el numero de campos que deseo mostrar en el Formulario No. 2, es decir.. pregunto número de campos a ingresar...

El usuario digita el número por decir 3.

En el Formulario No.2 aparece entonces el número de campos a ingresar y además formo para cada uno un nombre de variable diferente...

<?
$Campo = "Campo_";
$N = 1;
while ($N <= $Numero_campos)
{
echo '<tr><td nowrap>&nbsp;</td>
<td> <input name="'.$Campo.$N.'" type="text" class="resultados" size="20" maxlength="18"></td>
</tr>';
$N ++;
}
?>

Campo_1
Campo_2
Campo_3

Ahora el lio viene cuando quiero ingresar ya los datos a la base de datos.. no sé cuantos campos va a pedir cada usuario, por tanto debo hacer algo.. que me permita introducir uno a uno de una forma muy dimanica.. ya que puede ir de 1 campo a 50 campos por ejemplo...

Un array?.. hay manera de que los nombres o los datos se identifiquen de forma diferente??

Un saludo,
  #2 (permalink)  
Antiguo 08/01/2004, 20:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Lo que puedes hacer es una tabla de usuarios y otra con los datos de esos campos. Si das más detalles de qué son esos campos o para qué los usas, sería más fácil ponerte el ejemplo.

la primera tabla tendra un campo id_usuario (además de los que quieras)..

la segunda tabla tendrá los valores de los campos del formulario (uno en cada registro), además de otro campo (por lo menos) que haga referencia a qué usuario pertenece. O sea el id_usuario. De esa forma un usuario puede tener 0, 1, 2,... o los campos que quieras.

Saludos
  #3 (permalink)  
Antiguo 09/01/2004, 00:15
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Creo que me enredé un poco... voy a tratar de explicarlo mejor:
Supongamos que tus usuarios pueden ser dueños de 1 ó varios inmuebles y quieres que registen todos en tu BD. No puedes poner esto en la misma tabla de información del usuario, puesto que no sabes a priori cuántos campos ingresará.

Lo que te decía de hacer dos tablas es lo siguiente:

tabla 1: usuarios
campos:
id_usuario
nombre
DNI
telefono

tabla 2: Inmuebles
campos:
id_inmueble
ubicacion
area
tipo
id_usuario (que será el id del usuario al que pertenece)

No sé si se habrá entendido ahora un poco mejor. Espero que sí. De esta forma las consultas serán bastante sencillas de hacer. Por ejemplo, si quieres una lista de todos los inmuebles que tiene un usuario puedes hacer:
Código PHP:
$sql="SELECT * FROM Inmuebles WHERE id_usuario=el_que_buscas"
Si quieres hacer consultas un poco más complejas donde intervengan las dos tablas, puedes utilizar JOIN, etc. Revisa el manual de mysql para mayor información. http://www.mysql.com o has tu pregunta puntual acá mismo.

Saludos
  #4 (permalink)  
Antiguo 09/01/2004, 08:14
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 22 años
Puntos: 1
Creo que no me hice entender...

Entiendo lo de la base de datos y tambien tengo separado esto, uso una tabla recursiva, con id, idpadre, niveles y orden....

El cuento era como hacer para almacenadar cada valor de variable cuando el nombre solo se diferencia por el su valor numero.. es decir.. 1.. 2 ... 3.. etc etc

Para hacerlo de una forma dinamica y no 1 * 1

Ahora si quedo un poquitin más claro??
  #5 (permalink)  
Antiguo 09/01/2004, 09:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Puedes usar "Variables Variables" para componer tu $variable_n ... pero lo ideal para este caso es que uses arrays en la definición de tu variable del input HTML que generéras dinámicamente:

Código PHP:
<input name="Campo[]" type="text" class="resultados" size="20" maxlength="18"
(el [] indica un indice autonumerico comenzando en 0 .. a cada ejecución se incrementaría una unidad. Puedes usar tus própios indices si lo deseas).

Así en PHP recibiras un array de tantos elementos como ese bucle generase. Y los puedes contar como cualquier otro array o incluso usar bucles tipo foreach() que para estos casos van muy bien:

Código PHP:
foreach ($campo as $indice=>$valor){
    echo 
$indice."=>".$valor."<br>";

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 09/01/2004, 11:12
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 22 años
Puntos: 1
Perfecto.. gracias!!!
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 21:49.