Foros del Web » Programando para Internet » PHP »

seleccion de campos

Estas en el tema de seleccion de campos en el foro de PHP en Foros del Web. una ayuda por favor, tengo una tabla en una base de datos mysql con los siguientes campos: producto, precio, clase, categoria, estos dos ultimos para ...
  #1 (permalink)  
Antiguo 14/02/2006, 23:02
 
Fecha de Ingreso: febrero-2006
Mensajes: 79
Antigüedad: 18 años, 2 meses
Puntos: 0
seleccion de campos

una ayuda por favor, tengo una tabla en una base de datos mysql con los siguientes campos: producto, precio, clase, categoria, estos dos ultimos para poder filtrar. tengo el siguiente inconveniente, tengo hecho un formulario con combo box donde se muestran los productos para que el usuario pueda seleccionar entre varias opciones (como el de los formularios donde tienes que seleccionar el pais), deseo saber como enganchar desde este combo box al producto especifico y que me devuelva el precio correspondiente de ese registro, y luego de seleccionar los demas me permita hacer operaciones como suma, multiplicaciones etc. muchas gracias
tengo algo como esto...

<?php // arma computadora
session_start();
$cpu=$_POST['menu1'];
$memoria=$_POST['memorias'];


?>
<html>

<body>
<tt>
<form action="<?=$PHP_SELF."?".$SID?>" method="post">
<p>Procesador
<select name="menu1">
<option>SEMPRON 2600 SOCKET 754 - CACHE 256KB - BUS 1600MHZ - 64BIT</option>
<option>SEMPRON 2800 SOCKET 754 - CACHE 256KB - BUS 1600MHZ - 64BIT</option>
</select>
</p>
<p>
Memoria Ram
<select name="memorias">
<option>MEMORIA RAM 128MB BUS333MHZ PC2700</option>
<option>MEMORIA RAM 256MB BUS333MHZ PC2700</option>
<option>MEMORIA RAM 512MB BUS333MHZ PC2700</option>
<option>MEMORIA RAM 256MB BUS400MHZ PC3200</option>
<option>MEMORIA RAM 512MB BUS400MHZ PC3200</option>
<option>MEMORIA RAM 1000MB BUS400MHZ PC3200</option>
<option>MEMORIA KINGSTON RAM 256MB BUS400MHZ</option>
<option>MEMORIA KINGSTON RAM 512MB BUS400MHZ</option>
</select>
</p>
<p>
  #2 (permalink)  
Antiguo 15/02/2006, 11:02
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 18 años, 4 meses
Puntos: 0
falta algo esencial en ese formulario y es que debes asignar el atributo "value" a cada option dentro de los select. la mejor opción seria hacer que el formulario sea dinámico y que los valores respectivos de cada option sean el identificador que le hayas asignado a cada producto. si tu tabla no tiene un campo id estas en problemas.
  #3 (permalink)  
Antiguo 15/02/2006, 13:57
 
Fecha de Ingreso: febrero-2006
Mensajes: 79
Antigüedad: 18 años, 2 meses
Puntos: 0
Cita:
Iniciado por plus_ultra
falta algo esencial en ese formulario y es que debes asignar el atributo "value" a cada option dentro de los select. la mejor opción seria hacer que el formulario sea dinámico y que los valores respectivos de cada option sean el identificador que le hayas asignado a cada producto. si tu tabla no tiene un campo id estas en problemas.
hola que tal, gracias por tu respuestas, tengo ahora algo asi

<?php // arma computadora
session_start();
$menu1=$_POST['cpu']; //cada variable es obtenida de cada uno de los combo box
$menu2=$_POST['memorias'];
$menu3=$_POST['disco'];
$menu4=$_POST['mboard'];
$menu5=$_POST['cd'];
$menu6=$_POST['case'];
$menu7=$_POST['monitor'];
$menu8=$_POST['impresora'];
$menu9=$_POST['scan'];
$menu10=$_POST['ups'];
$menu11=$_POST['os'];
$menu12=$_POST['soft'];
mysql_connect("localhost","root","rado2323"); //cone
mysql_select_db("servitec"); //seleccion de base de datos
$cpu=mysql_query("select * from catalogo where clase=('462')");//filtrado de datos
$memoria=mysql_query("select * from catalogo where clase=('333')");
$disco=mysql_query("select * from catalogo where categoria=('disco')");
$mb=mysql_query("select * from catalogo where clase=('m462')");
$cd=mysql_query("select * from catalogo where categoria=('cd')");
$case=mysql_query("select * from catalogo where categoria=('case')");
$monitor=mysql_query("select * from catalogo where categoria=('monitor')");
$impresora=mysql_query("select * from catalogo where categoria=('impresora')");
$scanner=mysql_query("select * from catalogo where categoria=('scanner')");
$ups=mysql_query("select * from catalogo where categoria=('ups')");
$os=mysql_query("select * from catalogo where categoria=('os')");
$soft=mysql_query("select * from catalogo where categoria=('soft')");
$carro=$_SESSION['carro'];
?>

<body>
<tt>
<form action="<?=$PHP_SELF."?".$SID?>" method="post">
<p>Procesador
<select name="cpu">
<?php while ($row=mysql_fetch_array($cpu)){//los valores de cada tabla se asignan a los combo box select?>
<?php echo "<option>{$row['producto']}</option>";
} ?></select>
</p>
<p>
Memoria Ram
<select name="memorias">
<?php while ($row=mysql_fetch_array($memoria)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?><option>N/A</option>
</select>
</p>
<p>
Disco duro
<select name="disco">
<?php while ($row=mysql_fetch_array($disco)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
</select>
</p>
<p> Motherboard
<select name="mboard">
<?php while ($row=mysql_fetch_array($mb)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
</select>
</p>
<p>Unidad de cd
<select name="cd">
<?php while ($row=mysql_fetch_array($cd)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
<option>N/A</option>
</select>
</p>
<p>Gabinete
<select name="case">
<?php while ($row=mysql_fetch_array($case)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
</select>
</p>
<p>Monitor
<select name="monitor">
<?php while ($row=mysql_fetch_array($monitor)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
<option>N/A</option>
</select>
</p>
<p>Impresora
<select name="impresora">
<?php while ($row=mysql_fetch_array($impresora)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
<option>N/A</option>
</select>
</p>
<p>Scanner
<select name="scan">
<?php while ($row=mysql_fetch_array($scanner)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
<option>N/A</option>
</select>
</p>
<p>Ups / regulador de voltaje
<select name="ups">
<?php while ($row=mysql_fetch_array($ups)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
<option>N/A</option>
</select>
</p>
<p>Sistema Operativo
<select name="os">
<?php while ($row=mysql_fetch_array($os)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
<option>N/A</option>
</select>
</p>
<p>Otros programas
<select name="soft">
<?php while ($row=mysql_fetch_array($soft)){?>
<?php echo "<option>{$row['producto']}</option>";
} ?>
<option>N/A</option>
</select>
</p>
<p>
<input type="submit" value="cotizar">
<br>
</p>
</form>
DEBAJO SE MUESTRAN LAS ESPECIFICACIONES QUE HA SELECCIONADO:<br><p></p>
</tt>
<table width="100%" border="1">
<tr>
<td width="20%"><div align="left"><tt>

PROCESADOR <br> MEMORIA <br> DISCO DURO <br> MOTHERBOARD <br> UNIDAD DE CD
<br> GABINETE <br> MONITOR <br> IMPRESORA <br> SCANNER <br> UPS/REGULADOR
<br> SISTEMA OPERTATIVO <br> OTROS PROGRAMAS
</tt></div></td>
<td width="69%"><tt>
<?php
echo ''.$menu1. '<br>';
echo ''.$menu2. '<BR>';
echo ''.$menu3. '<br>';
echo ''.$menu4. '<br>';
echo ''.$menu5. '<br>';
echo ''.$menu6. '<br>';
echo ''.$menu7. '<br>';
echo ''.$menu8. '<br>';
echo ''.$menu9. '<br>';
echo ''.$menu10. '<br>';
echo ''.$menu11. '<br>';
echo ''.$menu12. '<br>';
?>
</tt></td>
<td width="11%"><tt> </tt></td>
</tr>
</table>
</body>
</html>

que podria hacer
  #4 (permalink)  
Antiguo 15/02/2006, 14:02
 
Fecha de Ingreso: febrero-2006
Mensajes: 79
Antigüedad: 18 años, 2 meses
Puntos: 0
ah tambien olvide decir, en mi tabla tengo un campo id, cada registro con su respectivo numero, a ese id te refieres?
  #5 (permalink)  
Antiguo 15/02/2006, 19:47
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 18 años, 4 meses
Puntos: 0
si, exactamente. la mejor forma de trabajar con registros que son únicos es esa, trabajar con sus id´s. para hacer los select no hace falta mandar un select *.

Código:
<?php
$result = mysql_query( "SELECT id FROM catalogo WHERE cat = algo" );

?>
<select name="tal_producto">
<?php
while ( $row = mysql_fetch_array( $result ) ) {
    ?>
    <option value=<?='"'.$row['id'].'"'?>><?=$row['nombre']?></option>
<?php
}
?>
</select>
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:24.