Foros del Web » Programando para Internet » PHP »

Insertar variables en una bd

Estas en el tema de Insertar variables en una bd en el foro de PHP en Foros del Web. Hola necesito hacer un panel de control de un catalogo de productos casi 100% personalizable. El problema es que hice un script para introducir el ...
  #1 (permalink)  
Antiguo 08/07/2003, 09:54
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Insertar variables en una bd

Hola necesito hacer un panel de control de un catalogo de productos casi 100% personalizable. El problema es que hice un script para introducir el pedido pero las opciones de cada producto varían y entonces tengo que hacer un select en la bd para que luego salgan en el formulario. Lo hice así:
Código PHP:
echo    " <form name=form method=post action=index.php?sec=anadir&id_server=".$id_server.">
        <po>Número de meses a contratar: <input name=meses type=text size=3 value=1></p>
        "
;

$resultado mysql_query("SELECT * FROM opciones where id_server='$id_server'",$conexion);
while (
$rown mysql_fetch_array($resultado))
{
     echo
'<br>'.$rown["nombre"].': <select name="'.$rown["nombre"].'">';
    
$resultado1 mysql_query("SELECT * FROM extras where nombre='$rown[nombre]'",$conexion);
    while (
$rown1 mysql_fetch_array($resultado1))
    
    {
                
                echo
'<option value="'.$rown1["id_extra"].'">'.$rown1["opcion"].' (+'.$rown1["precio"].',00 €)</option>';
        
    }                
                    echo 
"</select><br>";
    
}
echo 
"<input name=precio type=hidden value='".$precio."'>
                   <INPUT TYPE=submit CLASS=boton VALUE=Añadir>
                  </form>"

Cómo hago para introducir los valores en una bd si los campos a introducir no los conozco.
  #2 (permalink)  
Antiguo 08/07/2003, 16:30
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Nadie me puede ayudar.
  #3 (permalink)  
Antiguo 08/07/2003, 17:30
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Seía una buena opción que en algun lugar tuvieras una "tabla" (array) que relacionara los inputs con las tablas y los campos...

De esa forma, cada vez que muestras un formulario, le agregas un campo hidden que contenga la referencia al array de definiciones.
__________________
Manoloweb
  #4 (permalink)  
Antiguo 08/07/2003, 18:10
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Gracias Manoloweb pero no entendí lo que qieres decirme.
  #5 (permalink)  
Antiguo 08/07/2003, 19:24
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
pues creo que quiere decir que deberias tener esos articulos metidos en una Tabla en la Bd, asi haciendo un while, array podras mostrar esos resultados.... y lo deberias hacer con un selec Hidden que contenga la referencia al array de definiciones,,, osea oculto... para que no se vea....
__________________
3w.valenciadjs.com
3w.laislatv.com
  #6 (permalink)  
Antiguo 09/07/2003, 08:29
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Pero no puedo meter los articulos en una bd, los tengo separados por características que tiene cada pq sino tendría que hacer un monton de artículos diferentes con combinaciones diferentes.
  #7 (permalink)  
Antiguo 09/07/2003, 09:17
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Bueno, te ejemplifico lo que te sugería:

Código:
ID	Nombre		Tipo		Campo1	Campo2	Campo3		Precio
------------------------------------------------------------------------
1	Podadora		1		Verde	250HP	Automatica	159.50
2	Disco Duro	2		Seagate	20GB		XP			925.36
3	Cerradura		3		Perilla	Extra	Laton		57.22
4	Perforadora	1		Amarillo	180HP	Manual		524.98



$tipos=Array
(
    [1] => Array
        (
            [descripcion] => Maquinas
            [Campo1] => Color
            [Campo2] => Potencia
            [Campo3] => Transmision
        )

    [2] => Array
        (
            [descripcion] => Hardware PC
            [Campo1] => Marca
            [Campo2] => Capacidad
            [Campo3] => Compatibilidad
        )

    [3] => Array
        (
            [descripcion] => Herrajes Hogar
            [Campo1] => Tipo
            [Campo2] => Seguridad
            [Campo3] => Material
        )

)
Bueno, espero que se entienda lo que quiero decirte...

Saludos!
__________________
Manoloweb
  #8 (permalink)  
Antiguo 09/07/2003, 10:21
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Claro esa sería una solución pero imaginate que hay 200 productos con 10 combinaciones cada uno, sería de locos hacer eso,no?
  #9 (permalink)  
Antiguo 09/07/2003, 10:27
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Pues en ese caso creo que deberás ponerte a desarrollar un sistema de tablas en tu BD, con una estructura muy lógica y normalizada.

El problema es que hasta ahora hemos estado "adivinando" lo que necesitas, pues no has sido muy específico en cuanto a la estructura de tus datos, o a las diferentes variables que existen entre los tipos de productos y sus variantes...

__________________
Manoloweb
  #10 (permalink)  
Antiguo 09/07/2003, 18:07
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Bueno, mi intención era evitar contar todo el proyecto para que no os quedarais pero veo que va ser necesario si quiero seguir avanzando.

Estoi haciendo un carro de compra para www.juegosmultiplayer.com. El problema reside en que debe ser un carro de compra muy personalizable (con panel de control para añadir nuevos productos). Este carro de compra es para vender servidores para juegos, pero cada servidor tiene sus características propias, es decir, en un servidor tienes la posiblidad de escoger el numero de jugadores online y si permite estadisticas, otro puede tener a escoger el numero de slots, asi todos...

Para organizar todo este embrollo de catalogo cree tres tablas, una con los nombres de los servidores, la descripción del juego, el precio (llamada servidores). En otra tabla he puesto las opciones que existen relacionandolas con cada servidor (denominada opciones). En una última tabla, por nomber extras, coloco las subopciones correspondientes a cada opción, con el coste en euros que corresponde.


Una vez hecho esto cree una página donde poder introducir los productos, opciones y subopciones relacionandolas correctamente.

Despues hice un formulario en el que se recoge las opciones del servidor seleccionado (tenéis el código arriba). El problema es que los nombres del campo select los saco de hacer una consulta a la bd correspondiente y al enviarlas por el formulario, no sé como insertarlas en una bd de pedidos pq desconozco cómo sacar los valores de las variables si no conozco su nombre (debería sacarlos de un select) pero no se como diferenciar de sacar el nombre a sacar el valor de dicha variable.

Espero que me entendierais, gracias por vuestro tiempo y paciencia. Sobre todo a ti, ManoloWeb.
  #11 (permalink)  
Antiguo 09/07/2003, 18:41
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Creo que ya veo claro todo...

Bueno, mi recomendación sería que a cada select, en lugar de ponerle el nombre de la opción, le pusieras un nombre en array...

En lugar de:

<select name="jugadores">
<select name="slots">
<select name="puertos">
etc...

Poner:

<select name="opciones['jugadores']">
<select name="opciones['slots']">
<select name="opciones['puertos']">
etc...

de esta forma, en la siguiente página puedes hacer algo como esto:

Código PHP:

// Bla bla bla...

foreach ($_POST["opciones"] as $opcion => $valor){
// Aqui haces lo que quieras con las opciones y sus valores respectivos

Como ves? ayuda?
__________________
Manoloweb
  #12 (permalink)  
Antiguo 10/07/2003, 08:20
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Sería un buen comienzo pero el numero de opciones y el nombre para ponerselo lo desconozco entonces tendría que hacer un select en la bd para saber esto y ya no sabría como combinar todo.
  #13 (permalink)  
Antiguo 14/07/2003, 13:50
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Alguien me puede seguir ayudando?
  #14 (permalink)  
Antiguo 14/07/2003, 15:12
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Pero es que no necesitas saberlos...

Lo vas a asignar de manera dinámica...

Código PHP:
echo    " <form name=form method=post action=index.php?sec=anadir&id_server=".$id_server.">
        <po>Número de meses a contratar: <input name=meses type=text size=3 value=1></p>
        "
;

$resultado mysql_query("SELECT * FROM opciones where id_server='$id_server'",$conexion);
while (
$rown mysql_fetch_array($resultado))
{
     echo
'<br>'.$rown["nombre"].': <select name="opciones['.$rown["nombre"].']">';
    
$resultado1 mysql_query("SELECT * FROM extras where nombre='$rown[nombre]'",$conexion);
    while (
$rown1 mysql_fetch_array($resultado1))
    
    {
                
                echo
'<option value="'.$rown1["id_extra"].'">'.$rown1["opcion"].' (+'.$rown1["precio"].',00 €)</option>';
        
    }                
                    echo 
"</select><br>";
    
}
echo 
"<input name=precio type=hidden value='".$precio."'>
                   <INPUT TYPE=submit CLASS=boton VALUE=Añadir>
                  </form>"

__________________
Manoloweb
  #15 (permalink)  
Antiguo 14/07/2003, 17:47
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Vale, empiezo a entender. Pero como podría meter los valores separados por comas o espacios dentro de una variable. Para luego insertar esa variable en una bd.
  #16 (permalink)  
Antiguo 14/07/2003, 17:56
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Código PHP:
$variable=implode (",",$_POST["opciones"]) 
Esa es la manera de insertar todas las opciones seleccionadas en una sola variable separada por comas. Pero sinceramente cada vez entiendo menos lo que quieres hacer...
__________________
Manoloweb
  #17 (permalink)  
Antiguo 14/07/2003, 17:58
ivanff
Invitado
 
Mensajes: n/a
Puntos:
No, pero yo quiero insertar los valores de las opciones, no las opciones mismas.

Última edición por ivanff; 14/07/2003 a las 18:00
  #18 (permalink)  
Antiguo 14/07/2003, 18:27
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Bueno, pues en ese caso...

Código PHP:
foreach ($_POST["opciones"] as $claveOpcion => $valorOpcion){
//aqui haces lo que quieres con cada $claveOpcion

Saludos!
__________________
Manoloweb
  #19 (permalink)  
Antiguo 15/07/2003, 11:02
ivanff
Invitado
 
Mensajes: n/a
Puntos:
He probado a hacer esto pero no va.

Código PHP:
foreach ($_POST["opciones"] as $clave => $valor)
{
$variable=implode ("-",$valor);

  #20 (permalink)  
Antiguo 15/07/2003, 18:12
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Alguien me dice como puedo hacer.
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:19.