Foros del Web » Programando para Internet » PHP »

COMBOBOX+mysql

Estas en el tema de COMBOBOX+mysql en el foro de PHP en Foros del Web. Holas: Antes que lean, quisiera que algún experto me diera su msn POR FAVOR el mío es [email protected] de repente le tengo q pasar más ...
  #1 (permalink)  
Antiguo 31/01/2007, 10:09
 
Fecha de Ingreso: enero-2007
Mensajes: 10
Antigüedad: 17 años, 2 meses
Puntos: 0
COMBOBOX+mysql

Holas: Antes que lean, quisiera que algún experto me diera su msn POR FAVOR el mío es [email protected] de repente le tengo q pasar más archivos que por aquí sería muy largo.

Hice un formulario con 3 combobox (Panel Nueva Venta que está en venta_nuevo.php cuyo código es

Código PHP:
<?php
include('_control.php');
include(
"_conec.php");
conectarse();
$sql_c="select * from clientes";
$registro_c=mysql_query($sql_c);

$sql_p1="select * from productos";
$registro_p1=mysql_query($sql_p1);

$sql_p2="select * from productos";
$registro_p2=mysql_query($sql_p2);
?>

<body>
<form name="form1" method="post" action="agregarventa.php?">
  <table width="50%" border="1" align="center" 
    <tr> 
      <td class="arial11">Cliente</td>
      <td><select name="cliente" class="arial11">
<?
while($fila_c=mysql_fetch_array($registro_c))

?> 
<option value="<? echo $fila_c1["cliente_id"]?>"><? echo $fila_c["cliente_pa"]." ".$fila_c["cliente_ma"]." ".$fila_c["cliente_no"]?></option>
<?
}
?> 
</select></td>
    </tr>
    <tr> 
      <td class="arial11">Producto 1</td>
      <td><select name="producto1" class="arial11">
<?
while($fila_p1=mysql_fetch_array($registro_p1))

?> 
<option value="<? echo $fila_p1["prod_id"]?>"><? echo $fila_p1["prod_de"]." -- \$".$fila_p1["prod_pr"]?></option>
<?
}
?> 
        </select></td>
    </tr>
    <tr> 
      <td class="arial11">Producto 2</td>
      <td><select name="producto2" class="arial11">
<?
while($fila_p2=mysql_fetch_array($registro_p2))

?> 
<option value="<? echo $fila_p2["prod_id"]?>"><? echo $fila_p2["prod_de"]." -- \$".$fila_p2["prod_pr"]?></option>
<?
}
?> 
     </select></td>
    </tr>
    <tr> 
      <td class="arial11">Fecha Venta</td>
      <td><input name="fecha" type="text" class="arial11" value="<? echo date("Y/m/d"); ?>"></td>
    </tr>
    <tr> 
      <td colspan="2" align="center"><input type="submit" name="Submit" value="Realizar Venta"></td>
    </tr>
  </table>
</form>
</body>
Gráficamente sale así:
_______________
cliente |____________|V|
gomez garcia juan
medina ore alberto
casas lan ricardo
....
_______________
producto 1 |____________|V|
plancha $12
lavadora $10
....
_______________
producto 2 |____________|V|
plancha $12
lavadora $10
....

botón: Realizar venta

Esos combobox están jalando los datos de una base existente, como ven en el combobox cliente, combina 3 campos de la tabla cliente (appaterno, apmaterno y nombre)

Ahí me quedé ahora yo quiero ver en un reporte estos datos pero por separado, es decir si escogí "gomez garcía juan" en el combobox, en el reporte tengo que algo así :

idventa|appaterno|apmaterno|nombre|detalleprodut|p recio
1 gomez garcía juan plancha $12
2 gomez garcía juan lavadora $10

Cómo capturo en variables distintas los datos de una misma selección del combobox, y cómo manejo lo de producto1 y producto2 si vienen de la misma tabla productos. He tratado y tratado creo q tienen q ver los ID pero cómo distingo la ID de producto1 y la ID de producto2 si como digo vienen de la misma tabla, o qué tengo q modificar en el action.

CREATE TABLE `clientes` (
`cliente_id` int(11) NOT NULL auto_increment,
`cliente_pa` varchar(20) NOT NULL default '',
`cliente_ma` varchar(20) NOT NULL default '',
`cliente_no` varchar(20) NOT NULL default '',
`cliente_di` varchar(100) NOT NULL default '',
`cliente_ru` varchar(11) NOT NULL default '',
PRIMARY KEY (`cliente_id`)
);

CREATE TABLE `productos` (
`prod_id` int(11) NOT NULL auto_increment,
`prod_de` varchar(20) NOT NULL default '',
`prod_pr` varchar(20) NOT NULL default '',
PRIMARY KEY (`prod_id`)
);

CREATE TABLE `ventas` (
`venta_id` int(11) NOT NULL auto_increment,
`venta_cl` int(11) NOT NULL default '0',
`venta_pr` int(11) NOT NULL default '0',
`venta_fe` date NOT NULL default '0000-00-00',
PRIMARY KEY (`venta_id`)
)

MUCHAS GRACIAS POR LA AYUDA QUE ME PUEDAN BRINDAR.
  #2 (permalink)  
Antiguo 31/01/2007, 10:38
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: AYUDENME PLEASE :( COMBOBOX+mysql

queres hacer tipo un carrito de compras?
  #3 (permalink)  
Antiguo 31/01/2007, 11:49
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: AYUDENME PLEASE :( COMBOBOX+mysql

Parece que es mas simple el hacer lo que tu haces que lo que imaginas.
De hecho con lo mismo que tienes puedes hacerlo...

Aca con unas pequeñas modificaciones voy a dejar tu codigo mas una porcion de agregarventa.php
Código PHP:
<?php 
include('_control.php');
include(
"_conec.php");
conectarse(); 

$sql_c="select * from clientes"
$registro_c=mysql_query($sql_c); 

/*si es la misma consulta
no hay para que hacerla dos veces*/
$sql_p1="select * from productos";
$registro_p1=mysql_query($sql_p1);

$fecha date("Y/m/d");

/*Ahora con la pagina*/
/*Aca voy a implementar 2 funciones en javascript
que al momento de seleccionar una lista me guarde el "value"*/
$html '
<script type="Javascript">
function cargaCliente(valor){
      document.form1.cliente_id.value = valor;
}
function cargaProducto(valor,identificador){
      document.form1.identificador.value = valor;
}
</script>
<body> 
<form name="form1" method="post" action="agregarventa.php"> 
  <table width="50%" border="1" align="center">
    <tr>  
      <td class="arial11">Cliente</td> 
      <td><select name="cliente" class="arial11" OnChange="cargaCliente(this.options[selectedIndex].value)">'
;
          while(
$fila_c=mysql_fetch_array($registro_c)){
          
//esto para nuestro primer select  
                
$html .= '<option value="'.$fila_c1["cliente_id"].'">'.$fila_c["cliente_pa"].' '.$fila_c["cliente_ma"].' '.$fila_c["cliente_no"]'. </option>';
          }
$html .= '
          </select><input type="hidden" name="cliente_id"></td> 
    </tr> 
    <tr>  
      <td class="arial11">Producto 1</td> 
      <td><select name="producto1" class="arial11" OnChange="cargaProducto(this.options[selectedIndex].value,producto_id1)">'

           while(
$fila_p1=mysql_fetch_array($registro_p1)) {
                
$html .= '<option value="'.$fila_p1["prod_id"]].'">'.$fila_p1["prod_de"].' -- \$'.$fila_p1["prod_pr"]'. </option>';
           }
$html .= '
        </select><input type="hidden" name="producto_id1"></td> 
    </tr> 
    <tr>  
      <td class="arial11">Producto 2</td> 
      <td><select name="producto2" class="arial11" OnChange="cargaProducto(this.options[selectedIndex].value,producto_id2)"> '
;
           while(
$fila_p1=mysql_fetch_array($registro_p1)) {
                
$html .= '<option value="'.$fila_p1["prod_id"]].'">'.$fila_p1["prod_de"].' -- \$'.$fila_p1["prod_pr"]'. </option>';
           }
$html '
            </select><input type="hidden" name="producto_id2"></td> 
    </tr> 
    <tr>  
      <td class="arial11">Fecha Venta</td> 
      <td><input name="fecha" type="text" class="arial11" value="'
.$fecha.'"></td> 
    </tr> 
    <tr>  
      <td colspan="2" align="center"><input type="submit" name="Submit" value="Realizar Venta"></td> 
    </tr> 
  </table> 
</form> 
</body>'


print 
$html;
Ok... luego de tener ese archivo procedemos a recibir los valores (que es ahi donde haces la lista para verlo asi: idventa | appaterno | apmaterno| nombre| detalleproducto| precio).

Código PHP:
<?php
/*funciona tener esta lista para llamar lo necesario
idventa: autonumero
appaterno: $_POST['cliente']
apmaterno: $_POST['cliente']
nombre: $_POST['cliente']
detalleproducto: $_POST['producto1'], $_POST['producto2']
precio: $_POST['producto1'], $_POST['producto2']

ok... ahora te voy a mostrar esa lista.
(lo hare en bruto y tu despues lo ordenas)
*/
//variable para id de venta
$x//como es un ejemplo esta variable sera uno
//debes cambiarla por el ultimo valor de ventas + 1
$y 2//esta sera nuestro señalador
//si hay mas productos no se incrementa

$datoCliente trim(" ",$_POST['cliente']);
$datoProducto trim(" ",$_POST['producto1']);

for(
$x=1;$x<$y;$x++){
 
$html '
 ID de Venta: '
.$x.'<br>
 Apellido Paterno: '
.$datoCliente[0].'<br>
 Apellido Materno: '
.$datoCliente[1].'<br>
 Nombre: '
.$datoCliente[2].'<br>
 Detalle Producto: '
.$datoProducto[0].'<br>
 Precio: '
.$datoProducto[1].'<br>';

 if(
$_POST['producto2'] <> ""){
     
$datoProducto trim(" ",$_POST['producto2']); 
     
$y++;
 }
}

print 
$html;
?>
Ahora... estoy viendo que solo sirve o servira para una compra de uno o dos productos... no mas.

Mientras satisfaga lo que necesitas :D

Saludos!

Última edición por Marvin; 31/01/2007 a las 11:50 Razón: No puse print $html; en la segunda pagina xD
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 00:17.