Foros del Web » Programando para Internet » PHP »

Consulta BD mediante select en formulario

Estas en el tema de Consulta BD mediante select en formulario en el foro de PHP en Foros del Web. Buenas quiero hacer consulta a la base de datos mediante un formulario con un select, donde le doy la opcion al usuario a seleccionar algo ...
  #1 (permalink)  
Antiguo 11/09/2008, 03:43
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Consulta BD mediante select en formulario

Buenas quiero hacer consulta a la base de datos mediante un formulario con un select, donde le doy la opcion al usuario a seleccionar algo del select y que automaticamente se haga la consulta, lo tengo asi, pero no me sale

Formulario: El formulario recoge de la base de datos los valores con los que se puede buscar, es decir mostrara la lista de satelites
Código PHP:
 <form name="form1" method="get">
          <label>
         
            <select name="sate">
              <option value=''>Satelite
                <?php do { ?> <option value='<?php echo $row_satelite['sat']; ?>'><?php echo $row_satelite['sat']; ?><?php } while ($row_satelite mysql_fetch_assoc($satelite)); ?>
                    </select>
</form>
Consulta a la base de datos: Una vez seleccionado el satelite, quiero que automaticamente busque en la base de datos y me muestre todos los canales de ese satelite, la consulta la tengo así

Código PHP:
<?php
$satelite 
"sate";
mysql_select_db($database_conexion1$conexion1);
$query_Recordset1 "SELECT * FROM canales WHERE sat = '$satelite' ORDER BY canal ASC";
$Recordset1 mysql_query($query_Recordset1$conexion1) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
Tabla de muestra de contenido: Esta la tabla donde se muestra el contenido que se busca

Código PHP:
<table border="1" cellpadding="0" cellspacing="0" width="600" align="center">
  <tr>
    <td width="125" bgcolor="#000066"><span class="Estilo21">Nombre Canal </span></td>
    <td width="40" bgcolor="#000066"><div align="center"><span class="Estilo21">Po</span></div></td>
    <td width="107" bgcolor="#000066"><span class="Estilo21">Satelite</span></td>
    <td width="50" bgcolor="#000066"><div align="center"><span class="Estilo21">Frecu</span></div></td>
    <td width="50" bgcolor="#000066"><div align="center"><span class="Estilo21">S/ R </span></div></td>
    <td width="50" bgcolor="#000066"><div align="center"><span class="Estilo21">Pol</span></div></td>
    <td width="103" bgcolor="#000066"><span class="Estilo21">Encriptaci&oacute;n</span></td>
  </tr>
  <?php do { ?>
    <tr>
      <td bgcolor="#E2E2E2"><span class="Estilo16"><?php echo $row_Recordset1['canal']; ?></span></td>
      <td bgcolor="#E2E2E2"><div align="center"><span class="Estilo16"><?php echo $row_Recordset1['pos']; ?></span></div></td>
      <td bgcolor="#E2E2E2"><span class="Estilo16"><?php echo $row_Recordset1['sat']; ?></span></td>
      <td bgcolor="#E2E2E2"><div align="center"><span class="Estilo16"><?php echo $row_Recordset1['fr']; ?></span></div></td>
      <td bgcolor="#E2E2E2"><div align="center"><span class="Estilo16"><?php echo $row_Recordset1['sb']; ?></span></div></td>
      <td bgcolor="#E2E2E2"><div align="center"><span class="Estilo16"><?php echo $row_Recordset1['po']; ?></span></div></td>
      <td bgcolor="#E2E2E2"><span class="Estilo16"><?php echo $row_Recordset1['en']; ?></span></td>
    </tr>
    <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1)); ?>
</table>
¿Que tengo mal o que me falta para poder hacer el select y que automaticamente se muestre la consulta?

Muchas gracias por vuestra ayuda
  #2 (permalink)  
Antiguo 11/09/2008, 04:11
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Consulta BD mediante select en formulario

Una muestra de lo que pretendo.

http://www.deporte-tv.es/buscador.php

Ahora mismo la consulta la he dejado asi, para probar el Like %% pero vamos que esto es lo que deseo y algo tengo mal
  #3 (permalink)  
Antiguo 11/09/2008, 10:56
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Consulta BD mediante select en formulario

hola..

creo que puedes manejar el evento onchange="submit()">
Para que asi mandes de nuevo la pagina y regrese al mismo formulario oviamente en tu formulario debe estar asi:

<form name="form1" action="nombredetumismapagina.php" action="">

y en tu select asi:

<select name='select' id='select' onchange="submit()">

y simplemente recuperas los valores por el value o id con:
$lista=$_REQUEST['select'];

con un switch :

switch ($lista){

case 0: $valor="No selecciono ";
break;
case 1: $valor="objeto1";
break;
case 2: $valor="objeto2";
break;
....
..
...
}

return $valor;


Saludos!
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #4 (permalink)  
Antiguo 11/09/2008, 15:18
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Consulta BD mediante select en formulario

mira lo he puesto asi y no me sale

Código PHP:
          <form name="form1" method="post" action="buscador.php">
          <label>
         
            
              <select name='sate' id='sate' onchange="submit()">
                <option value=''>Satelite
                  <?php do { ?><option value='<?php echo $row_satelite['sat']; ?>'><?php echo $row_satelite['sat']; ?><?php } while ($row_satelite mysql_fetch_assoc($satelite)); ?>
                  </select>
              
            
          </label>
                <label>
               
                  <select name="canal">
                    <option value=''>Canal
                       <?php do { ?><option value='<?php echo $row_canales['canal']; ?>'><?php echo $row_canales['canal']; ?><?php } while ($row_canales mysql_fetch_assoc($canales)); ?>
                      </select>
                  
                </label><label><select name="fta">
                <option value=''>Canales Gratuitos
                <option value='En abierto'>En abierto
                    </select>
                </label>
</form></center>
<?php

$lista
=$_REQUEST['sate'];

switch (
$lista){

case 
0$valor="No selecciono ";
break;
case 
1$valor="objeto1";
break;
case 
2$valor="objeto2";
break;

}

return 
$valor?>
Y la consulta a la base de datos asi

Código PHP:
mysql_select_db($database_conexion1$conexion1);
$query_Recordset1 "SELECT * FROM canales WHERE en like '$lista' ORDER BY sat ASC";
$Recordset1 mysql_query($query_Recordset1$conexion1) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1); 
Que tengo mal, muchas gracias por la ayuda
  #5 (permalink)  
Antiguo 12/09/2008, 15:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Consulta BD mediante select en formulario

Me contesto a mi mismo

Pagina buscador.php, con select que llevan consulta a la db para mostrar los nombres grabados

Código PHP:
<form name="form1" action="encontrado.php" method="post">
          <table width="80%" border="0">
            <tr>
              <td><span class="Estilo29">Buscar por canal </span></td>
              <td><select name="canal">
                <option value=''>Canal
                  <?php do { ?>
                  <option value='<?php echo $row_canales['canal']; ?>'><?php echo $row_canales['canal']; ?>
                    <?php } while ($row_canales mysql_fetch_assoc($canales)); ?>
                            </select></td>
            </tr>
            <tr>
              <td colspan="2" align="center"><input type="submit" value="Buscar Canal"></td>
              </tr>
          </table>

</form>
Pagina encontrado.php

Código PHP:
<?php

if (isset($_POST["sate"])) $sate=$_POST["sate"];
if (isset(
$_POST["canal"]))  $canal=$_POST["canal"];
if (isset(
$_POST["fta"]))  $fta=$_POST["fta"];

?> 

<?php
$colname_Recordset1 
"-1";
if (isset(
$_POST['sat'])) {
  
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['sat'] : addslashes($_POST['sat']);
}
mysql_select_db($database_conexion1$conexion1);
$query_Recordset1 sprintf("SELECT * FROM canales WHERE canal = '$canal' ORDER BY canal ASC"$colname_Recordset1);
$Recordset1 mysql_query($query_Recordset1$conexion1) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
?>

<table border="0" cellpadding="0" cellspacing="0" width="780">
  <tbody>
    <tr align="center" bgcolor="#FFFFFF" valign="top">
      <td colspan="2" bgcolor="#FFFFFF"><?php @include("modulos/header.php"); ?></td>
      </tr>
    <tr align="center" valign="top">
    <td class="menudos" width="166"><?php @include("modulos/menu.php"); ?>
      <div align="left"></div>
      <table border="0" width="165">
                <tr>
          <td></td>
        </tr>
      </table>
      <?php @include("modulos/traductor.php"); ?>
      <?php @include("modulos/enlaces.php"); ?>
      <?php @include("modulos/historico.php"); ?>
      <?php @include("modulos/afiliados.php"); ?>
      <?php @include("http://www.apuestatv.es/modulos/publicidad1.php"); ?>
<table border="0" cellpadding="0" cellspacing="0" width="165">
    <tbody><tr>
        <td align="center"></td>
    </tr>
</tbody></table>
      <br>    </td>
      <td width="879"> 
           <table width="564" border="0" cellpadding="0" cellspacing="0" align="center">
    <tbody>
      <tr bgcolor="#101070">
        <td colspan="3"><img src="a_data/pix.gif" height="1" width="1"></td>
      </tr>
      <tr bgcolor="#ffffff">
        <td width="4" background="a_data/wl.gif">&nbsp;</td>
        <td width="864" rowspan="2"><div align="center" class="Estilo26">Frecuencias encontradas en su busqueda</div>
          <center>
            <?php if ($totalRows_Recordset1 0) { // Show if recordset not empty ?>
              <table border="1" cellpadding="0" cellspacing="0" width="600" align="center">
                <tr>
                  <td width="125" bgcolor="#336699"><span class="Estilo21">Nombre Canal </span></td>
          <td width="40" bgcolor="#336699"><div align="center"><span class="Estilo21">Po</span></div></td>
          <td width="107" bgcolor="#336699"><span class="Estilo21">Satelite</span></td>
          <td width="50" bgcolor="#336699"><div align="center"><span class="Estilo21">Frecu</span></div></td>
          <td width="50" bgcolor="#336699"><div align="center"><span class="Estilo21">S/ R </span></div></td>
          <td width="50" bgcolor="#336699"><div align="center"><span class="Estilo21">Pol</span></div></td>
          <td width="103" bgcolor="#336699"><span class="Estilo21">Encriptaci&oacute;n</span></td>
      </tr>
                <?php do { ?>
                  <tr>
                    <td bgcolor="#e3eaf2"><span class="Estilo26"><?php echo $row_Recordset1['canal']; ?></span></td>
                    <td bgcolor="#e3eaf2"><div align="center" class="Estilo27"><?php echo $row_Recordset1['pos']; ?></div></td>
                    <td bgcolor="#e3eaf2" class="Estilo27"><?php echo $row_Recordset1['sat']; ?></td>
                    <td bgcolor="#e3eaf2"><div align="center" class="Estilo27"><?php echo $row_Recordset1['fr']; ?></div></td>
                    <td bgcolor="#e3eaf2"><div align="center" class="Estilo27"><?php echo $row_Recordset1['sb']; ?></div></td>
                    <td bgcolor="#e3eaf2"><div align="center" class="Estilo27"><?php echo $row_Recordset1['po']; ?></div></td>
                    <td bgcolor="#e3eaf2" class="Estilo28"><?php echo $row_Recordset1['en']; ?></td>
                  </tr>
                  <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1)); ?>
                  </table>
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:12.