Foros del Web » Programando para Internet » PHP »

Usar dos formularios para visualizar datos

Estas en el tema de Usar dos formularios para visualizar datos en el foro de PHP en Foros del Web. Hola, ya se que el título es algo lioso, pero mejor me explico: - Tengo un formulario que me conecta con una base de datos ...
  #1 (permalink)  
Antiguo 23/01/2012, 11:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 16
Antigüedad: 13 años, 5 meses
Puntos: 0
Usar dos formularios para visualizar datos

Hola,
ya se que el título es algo lioso, pero mejor me explico:

- Tengo un formulario que me conecta con una base de datos en MySQL, y se reflejan los datos que hay en esa tabla.
Código:
$sql = mysql_query("SELECT DISTINCT Nombre_Vino, Cod_Nombre FROM vino");  
echo "<select name='nombrevino'>";

while($row = mysql_fetch_array($sql)){

		$Cod_Nombre=$row['Cod_Nombre'];
		$Nombre_Vino=$row['Nombre_Vino'];
       	
		
		
		echo " <option value='".$Cod_Nombre."'>".$Nombre_Vino."</option>";

	}
(Es de una bodega)
- Luego tengo otro formulario.
Código:
echo "</select><br/><br/>";
$sql2 = mysql_query("SELECT DISTINCT Tipo_Vino FROM vino ORDER BY Cod_Vino ASC");  
echo "<select name='tipovino'>";

while($row = mysql_fetch_array($sql2)){

		
		$Tipo_Vino=$row['Tipo_Vino'];
       	
		
		
		echo " <option value='".$Tipo_Vino."'>".$Tipo_Vino."</option>";

	}
	
echo "</select><br/><br/>";
Para el primer formulario, tengo un codigo de consulta, en el cual, hago que me busque, en una tabla todos los vinos con ese nombre. (Usando SELECT y WHILE)

Lo que necesito, es que cuando el usuario seleccione el nombre del vino, y el tipo del vino a la vez, se muestren los datos que tengan ese nombre de vino y ese mismo de tipo de vino (la tabla vino y tipo de vino se dan por hecho que ya esta relacionada), pero si no seleccionan por ejemplo nada en el primer select, que se de por hecho que esta vacio el campo. Se da por hecho también que en la tabla el primer campo es seleccionar y que en la primera consulta del nombre del vino, se usa un:
Código:
AND NOT A LIKE "Seleccionar"
Gracias de antemano,
espero ayuda, saludos.

Os dejo el codigo que tengo:
Código:
  
  <?php
include ('conf.php');
?>


<form action="servicevinoavanzado3.php" method="POST">


  
<?php
$sql = mysql_query("SELECT DISTINCT Nombre_Vino, Cod_Nombre FROM vino");  
echo "<select name='nombrevino'>";

while($row = mysql_fetch_array($sql)){

		$Cod_Nombre=$row['Cod_Nombre'];
		$Nombre_Vino=$row['Nombre_Vino'];
       	
		
		
		echo " <option value='".$Cod_Nombre."'>".$Nombre_Vino."</option>";

	}

echo "</select><br/><br/>";
$sql2 = mysql_query("SELECT DISTINCT Tipo_Vino FROM vino ORDER BY Cod_Vino ASC");  
echo "<select name='tipovino'>";

while($row = mysql_fetch_array($sql2)){

		
		$Tipo_Vino=$row['Tipo_Vino'];
       	
		
		
		echo " <option value='".$Tipo_Vino."'>".$Tipo_Vino."</option>";

	}
	
echo "</select><br/><br/>";
 
 
  ?>
  <br/>

<br/>

  <input type="submit" class ="button" id="enviar" name="enviar" value="Envia tu consulta"> <br/>
  
</form>


<?php

if(isset($_POST['enviar'])){
$nombre = $_POST ['nombrevino'];
$vselect = mysql_query ('SELECT Nombre_Vino, Tipo_Vino, PVP, Cod_Tipo_Uva, Cod_Bodega, Foto_Bodega, URL, Envejecimiento, Cod_DO, Cod_Añada FROM vino WHERE Cod_Nombre ='.$nombre.'');
WHILE ($c1 = mysql_fetch_array ($vselect)) {
$vino = $c1['Nombre_Vino'];
$tvino = $c1['Tipo_Vino'];
$PVP = $c1['PVP'];
$ids = $c1['URL'];
$fb = $c1['Foto_Bodega'];

$muestratipouva = $c1 ['Cod_Tipo_Uva'];
$seleccionuva = mysql_query ('SELECT * FROM tipo_uva WHERE  Cod_Uva="'.$muestratipouva.'"');
WHILE ($Cod_Tipo_Uva = mysql_fetch_array($seleccionuva)){
$tu = $Cod_Tipo_Uva['Tipo_Uva'];

$bodega = $c1 ['Cod_Bodega'];
$seleccionbodega = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega.'"');
WHILE ($Cod_Bodega = mysql_fetch_array($seleccionbodega)){
$bode = $Cod_Bodega['Nombre_Bodega'];

$envejecimiento = $c1 ['Envejecimiento'];
$enve = mysql_query ('SELECT * FROM envejecimiento WHERE  Cod_Envejecimiento="'.$envejecimiento.'"');
WHILE ($Envejecimiento = mysql_fetch_array($enve)){
$envej = $Envejecimiento['Envejecimiento'];

$denominacion = $c1 ['Cod_DO'];
$do = mysql_query ('SELECT * FROM do WHERE  Cod_DO="'.$denominacion.'"');
WHILE ($Denominacion = mysql_fetch_array($do)){
$do1 = $Denominacion['Denominacion_Origen'];

$codanada = $c1 ['Cod_Añada'];
$selecanada = mysql_query ('SELECT * FROM añada WHERE  Cod_Añada="'.$codanada.'"');
WHILE ($Cod_Añada = mysql_fetch_array($selecanada)){
$ca = $Cod_Añada['Añada'];

$bodega1 = $c1 ['Cod_Bodega'];
$seleccionbodega1 = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega1.'"');
WHILE ($Cod_Bodega1 = mysql_fetch_array($seleccionbodega1)){
$probo = $Cod_Bodega1['Provincia'];

$bodega2 = $c1 ['Cod_Bodega'];
$seleccionbodega2 = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega2.'"');
WHILE ($Cod_Bodega2 = mysql_fetch_array($seleccionbodega2)){
$ciudadbo = $Cod_Bodega2['Ciudad'];

$bodega3 = $c1 ['Cod_Bodega'];
$seleccionbodega3 = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega3.'"');
WHILE ($Cod_Bodega3 = mysql_fetch_array($seleccionbodega3)){
$CP = $Cod_Bodega3['Codigo_Postal'];

$bodega4 = $c1 ['Cod_Bodega'];
$seleccionbodega4 = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega4.'"');
WHILE ($Cod_Bodega4 = mysql_fetch_array($seleccionbodega4)){
$direccion = $Cod_Bodega4['Direccion'];

$bodega5 = $c1 ['Cod_Bodega'];
$seleccionbodega5 = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega5.'"');
WHILE ($Cod_Bodega5 = mysql_fetch_array($seleccionbodega5)){
$telf = $Cod_Bodega5['Telefono'];

$bodega6 = $c1 ['Cod_Bodega'];
$seleccionbodega6 = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega6.'"');
WHILE ($Cod_Bodega6 = mysql_fetch_array($seleccionbodega6)){
$dob = $Cod_Bodega6['DO_Bodega'];

$bodega7 = $c1 ['Cod_Bodega'];
$seleccionbodega7 = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega7.'"');
WHILE ($Cod_Bodega7 = mysql_fetch_array($seleccionbodega7)){
$horarios = $Cod_Bodega7['Horarios'];

$bodega8 = $c1 ['Cod_Bodega'];
$seleccionbodega8 = mysql_query ('SELECT * FROM bodega WHERE  Cod_Bodega="'.$bodega8.'"');
WHILE ($Cod_Bodega8 = mysql_fetch_array($seleccionbodega8)){
$pvisita = $Cod_Bodega8['Precio_Visita'];

echo'<br/>
<h1>Vino de <a>'.$vino.'</a>  &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Información de la bodega <a href="'.$ids.'">'.$bode.'</a></h1>


<table width="941" border="0" cellspacing="1">
  <tr>
    <td width="161">Nombre</td>
    <td width="151">'.$vino.'</td>
    <td width="231">Nombre bodega</td>
    <td width="174">'.$bode.'</td>
    <td width="208" rowspan="9"><img src="'.$fb.'" /></td>
  </tr>
  <tr>
    <td>Precio</td>
    <td>'.$PVP.' €</td>
	<td>Provincia</td>
    <td>'.$probo.'</td>
  </tr>
  <tr>
    <td>Tipo de vino </td>
    <td>'.$tvino.'</td>
	<td>Ciudad</td>
    <td>'.$ciudadbo.'</td>
  </tr>
  <tr>
    <td>Tipo de uva </td>
    <td>'.$tu.'</td>
	<td>Código Postal</td>
    <td>'.$CP.'</td>
  </tr>
  <tr>
    <td>Bodega</td>
    <td><a href="'.$ids.'" target="_blank">'.$bode.'</a></td>
    <td>Dirección</td>
    <td>'.$direccion.'</td>
  </tr>
  <tr>
    <td>Envejecimiento</td>
    <td>'.$envej.'</td>
	<td>Teléfono</td>
    <td>'.$telf.'</td>
  </tr>
  <tr>
    <td>Denominaci&oacute;n de Origen </td>
    <td>'.$do1.'</td>
	<td>Denominación de Origen de '.$bode.'</td>
    <td>'.$dob.'</td>
  </tr>
  <tr>
    <td>A&ntilde;ada</td>
    <td>'.$ca.'</td>
	<td>Horario</td>
    <td>'.$horarios.'</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>Precio Visita</td>
    <td>'.$pvisita.' €</td>
  </tr>
</table>


<br/>
';
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
?>
  #2 (permalink)  
Antiguo 23/01/2012, 12:10
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Usar dos formularios para visualizar datos

¿Cómo haces para relacionar la primera consulta con la segunda consulta? porque veo que en tu primer select muestras todos los vinos y en tu segundo select muestras todos los tipos de vino.
Si solucionas esta pregunta que te hago solucionarás el ejercicio que pretendes realizar.
__________________
Salud y Éxitos
PFI Tube
  #3 (permalink)  
Antiguo 23/01/2012, 12:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 16
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Usar dos formularios para visualizar datos

La tabla, vino y tipo_uva (el segundo select) estan relacionadas ya, Cod_Tipo_Uva.vino y Cod_Uva.tipo_uva
no se si me explico
  #4 (permalink)  
Antiguo 23/01/2012, 14:49
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Usar dos formularios para visualizar datos

En lugar de utilizar mysql_fetch_array dentro de un while la mejor práctica puede ser utilizar mysql_fetch_assoc y así sacar la información uno a uno.
__________________
Salud y Éxitos
PFI Tube
  #5 (permalink)  
Antiguo 23/01/2012, 16:12
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 2
Respuesta: Usar dos formularios para visualizar datos

Hola, mira tengo un código que seleccionando en un combo de "regiones" una region, carga automáticamente en otro combo las comunas correspondientes. En el fondo lo que hace es enviar un id a una consulta sql, del "producto" que quieres consultar, luego cargas los datos en él, y posteriormente en este caso se despliegan en un combo, pero puedes modificarlo para que carguen en otro tipo de form.

https://gist.github.com/836535

Tambien mira este video: http://www.youtube.com/watch?v=v8HoVdenZFM

Saludos ojala te sirva

Saludos.
  #6 (permalink)  
Antiguo 01/02/2012, 16:29
 
Fecha de Ingreso: noviembre-2010
Mensajes: 16
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Usar dos formularios para visualizar datos

Por lo que he optado ha sido por lo siguiente, algo chapuza, pero que les parece?
Código:
<html>
<head>
<title></title>
</head>
<body>
  <?php
include ('conf.php');
?>
<form action="prueba3.php" method="POST">
<?php
$c1 = mysql_query("SELECT DISTINCT Nombre_Vino, Cod_Nombre FROM vino GROUP BY (Nombre_Vino) ORDER BY (Cod_Nombre)");  
echo "Nombre del vino: <select name='nvino'>";

while($row = mysql_fetch_array($c1)){

		$Cod_Nombre=$row['Cod_Nombre'];
		$Nombre_Vino=$row['Nombre_Vino'];
       	
		
		
		echo "<option value='".$Cod_Nombre."'>".$Nombre_Vino.$Cod_Nombre."</option>";
	
	}
	
echo "</select><br/>";
  
  ?>
<?php
$c2 = mysql_query("SELECT DISTINCT Cod_Tipo_Uva FROM vino");  

echo "Tipo de uva: <select name='tuva'>";

while($row = mysql_fetch_array($c2)){

		
		$Cod_Anada=$row['Cod_Tipo_Uva'];
       	
	$sql1 = mysql_query("SELECT Cod_Uva, Tipo_Uva FROM tipo_uva WHERE Cod_Uva = '".$Cod_Anada."'");  	
	while($row1 = mysql_fetch_array($sql1)){
		$Cod_Anada1=$row1['Cod_Uva'];
		$Cod_Anada2=$row1['Tipo_Uva'];
		echo "<option value='".$Cod_Anada."'>".$Cod_Anada2.$Cod_Anada."</option>";
}
	}
	
echo "</select><br/>";
 
 
  ?>


<?php
$c3 = mysql_query("SELECT DISTINCT Tipo_Vino FROM vino");  

echo "Tipo de vino: <select name='tvino'>";

while($row = mysql_fetch_array($c3)){

		
		$Tipo_Vino=$row['Tipo_Vino'];
       	
	$sql1 = mysql_query("SELECT Cod_Vino, Tipo_Vino FROM tipo_vino WHERE Cod_Vino = '".$Tipo_Vino."'");  	
	while($row1 = mysql_fetch_array($sql1)){
		$Tipo_Vino1=$row1['Cod_Vino'];
		$Tipo_vino2=$row1['Tipo_Vino'];
		echo "<option value='".$Tipo_Vino1."'>".$Tipo_vino2."</option>";
}
	}
	
echo "</select><br/>";
 
 
  ?>
<input type="submit" class ="button" id="enviar" name="enviar" value="Envia tu consulta"> <br/>
</form>
<?php

$sentencia = "SELECT * FROM vino
WHERE
";
if(isset($_POST['nvino']) && $_POST['nvino'] != 0){
$vin = $_POST['nvino'];
$sentencia = $sentencia." Cod_Nombre = ".$vin."";
			if(isset($_POST['tuva']) && $_POST['tuva'] != 1){
			$vins = $_POST['tuva'];
			$sentencia = $sentencia." AND Cod_Tipo_Uva = ".$vins."";
					if(isset($_POST['tvino']) && $_POST['tvino'] != 1){
					$vinoss = $_POST['tvino'];
					$sentencia = $sentencia." AND Tipo_Vino = ".$vinoss."";
					
					//Añadir aqui otro isset
						
					}
			}
}else{
if(isset($_POST['tuva']) && $_POST['tuva'] != 1 ){
			$vins = $_POST['tuva'];
			$sentencia = $sentencia." Cod_Tipo_Uva = ".$vins."";
					if(isset($_POST['tvino']) && $_POST['tvino'] != 1){
					$vinoss = $_POST['tvino'];
					$sentencia = $sentencia." AND Tipo_Vino = ".$vinoss."";
					//Añadir aqui otro isset
					}
					
			}else{
			
if(isset($_POST['tvino']) && $_POST['tvino'] != 1 ){
					$vinoss = $_POST['tvino'];
					$sentencia = $sentencia."Tipo_Vino = ".$vinoss."";
					//Añadir aqui otro isset
					
					}//Añadir aqui otro else
					
//Añadir aqui otro isset añadido de la linea anterior

}} //Añadir el fin del else }


$mysql = mysql_query($sentencia);
if ($mysql != NULL) 
{
	while($my = mysql_fetch_array($mysql)){
		$nomb= $my['Nombre_Vino'];
	echo $nomb;
	}
}
echo $sentencia;
?>

Etiquetas: formulario, mysql, sql, tabla, usar, usuarios
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 22:32.