Foros del Web » Programando para Internet » PHP »

establecer consulta desde un formulario

Estas en el tema de establecer consulta desde un formulario en el foro de PHP en Foros del Web. Saludos, Como ya antes habia dicho estoy haciendo un buscador, el funciona bien, ahora mi pregunta es.. Me gustaria que tubiese un select a parte ...
  #1 (permalink)  
Antiguo 04/03/2013, 09:27
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
establecer consulta desde un formulario

Saludos,
Como ya antes habia dicho estoy haciendo un buscador, el funciona bien, ahora mi pregunta es..
Me gustaria que tubiese un select a parte del campo de texto donde seleccione que tipo de articulo voy a buscar... Si es hotel, restaurant, etc...

si yo tengo este codigo...

Código PHP:
<?php
@$busqueda $_POST["for"] ;
@
$base $_POST["for"] ;

//cadena de conexion 
$conexion mysql_connect("localhost","morr0113_admin","morro2012"); 
mysql_select_db("morr0113_2012"$conexion); 
//DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe 
if ($busqueda<>''){ 
      
//Mostramos los titulos de los articulos o lo que deseemos... 
      
$trozos=explode(" ",$busqueda);

$cadbuscar = array();

foreach(
$trozos as $palabra){
     
$cadbuscar[] = "descripcion LIKE '%$palabra%' OR titulo LIKE '%$palabra%'";
}
$query "SELECT descripcion, titulo FROM hoteles WHERE ";
$query .= implode(' or '$cadbuscar);
$query .= " LIMIT 50";

$result=mysql_query($query$conexion);  

}

?>
puedo hacer que mi consulta sea algo como
Código PHP:
$query "SELECT descripcion, titulo FROM $base WHERE "
se puede?
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 04/03/2013, 10:50
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años
Puntos: 5
Respuesta: establecer consulta desde un formulario

yo a los select cuando dejo pre definido los valores en la bd a ese select deberias dejarle

$query = "SELECT descripcion, titulo FROM $base WHERE campobd ='cc' ";

hay deberia buscar todos los registros de esa seleccion

Código PHP:
Ver original
  1. <label>Centro Costo </label><select name="cc" id="cc">
  2.                           <option value="0">Seleccione Centro Costo </option>
  3.                           <?php
  4.                          
  5. $consul=mysql_query("SELECT * FROM t_cc");
  6. while($registro=mysql_fetch_row($consul))
  7. {    
  8.          echo "<option value='$registro[1]'>$registro[1] </option>";  
  9.     }
  10. ?>
  11.                         </select>
  #3 (permalink)  
Antiguo 04/03/2013, 11:48
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: establecer consulta desde un formulario

y porque t_cc????
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #4 (permalink)  
Antiguo 04/03/2013, 12:30
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años
Puntos: 5
Sonrisa Respuesta: establecer consulta desde un formulario

Cita:
Iniciado por T4ke0veR Ver Mensaje
y porque t_cc????
por que ese es el nombre de mi tabla de mi bd reemplazalo por el de la tabla que tu le vaz a asignar

saludos
  #5 (permalink)  
Antiguo 04/03/2013, 14:45
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: establecer consulta desde un formulario

Ok pero me explico... lo que yo quiero es que el valor que envia el select en el formulario sea el que se asigne a la busqueda... por ejemplo... si yo selecciono hoteles.. q mi query sea

select *. from hoteles...

si en mi select digo granjas

select * from granjas...

eso es lo que deseo hacer
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 04/03/2013, 14:52
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Respuesta: establecer consulta desde un formulario

Claro, podrias hacer algo asi:

Creas tu select con el nombre de las tablas por ejemplo

Código HTML:
Ver original
  1. <select name="nombre_tabla">
  2.     <option value="hoteles">Hoteles</option>
  3.     <option value="usuarios">Usuario</option>

En el PHP
Código PHP:
Ver original
  1. extract($_POST);
  2.  
  3. $query = sprintf("SELECT * FROM %s",$nombre_tabla);
  4.  
  5. // si seleccionaste hoteles el query queda SELECT * FROM hoteles
  #7 (permalink)  
Antiguo 04/03/2013, 14:57
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: establecer consulta desde un formulario

es decir...
Código PHP:
 <?php
@$busqueda $_POST["for"] ;
@
$base $_POST["for"] ;

//cadena de conexion 
$conexion mysql_connect("localhost","morr0113_admin","morro2012"); 
mysql_select_db("morr0113_2012"$conexion); 
//DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe 
if ($busqueda<>''){ 
      
//Mostramos los titulos de los articulos o lo que deseemos... 
      
$trozos=explode(" ",$busqueda);

$cadbuscar = array();

foreach(
$trozos as $palabra){
     
$cadbuscar[] = "descripcion LIKE '%$palabra%' OR titulo LIKE '%$palabra%'";
}
$query "SELECT descripcion, titulo FROM $base WHERE ";
$query .= implode(' or '$cadbuscar);
$query .= " LIMIT 50";

$result=mysql_query($query$conexion);  

}

?>
esto sirve?
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #8 (permalink)  
Antiguo 04/03/2013, 15:03
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Respuesta: establecer consulta desde un formulario

Si es valido, pero por que asi ? que quieres hacer?
  #9 (permalink)  
Antiguo 04/03/2013, 15:09
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: establecer consulta desde un formulario

Es una web que es un directorio comercial...
este es mi formulario

Código PHP:
<form action="buscador.php" method="post" enctype="multipart/form-data" name="busqueda" id="Form1">
      <
label>
        <
select name="base" id="base">
          <
option>Seleccione</option>
          <
option value="hoteles">Hoteles</option>
          <
option value="rest">Restaurantes</option>
          <
option value="pecuaria">Agropecuaria</option>
          <
option value="nautica">Guia Nautica</option>
          <
option value="embarcaderos">Embarcaderos</option>
          <
option value="eventos">Rumbas y Eventos</option>
          <
option value="emergencias">Emergencias</option>
          <
option value="clasificados">Clasificados</option>
        </
select>
      </
label
      <
input type="text" name="for" size="30" id="for">
      <
input name="busqueda" type="submit" id="busqueda" value="burcador">
</
form
y esta mi consulta

Código PHP:
<?php
@$busqueda $_POST["for"] ;
@
$base $_POST["for"] ;

//cadena de conexion 
$conexion mysql_connect("localhost","morr0113_admin","morro2012"); 
mysql_select_db("morr0113_2012"$conexion); 
//DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe 
if ($busqueda<>''){ 
      
//Mostramos los titulos de los articulos o lo que deseemos... 
      
$trozos=explode(" ",$busqueda);

$cadbuscar = array();

foreach(
$trozos as $palabra){
     
$cadbuscar[] = "descripcion LIKE '%$palabra%' OR titulo LIKE '%$palabra%'";
}
$query "SELECT descripcion, titulo FROM hoteles WHERE ";
$query .= implode(' or '$cadbuscar);
$query .= " LIMIT 50";

$result=mysql_query($query$conexion);  

}

?>
la idea es que la tabla busque mas directamente lo que el cliente o usuario desea, si es hoteles, solo busque en la tabla hoteles, si es restaurantes, solo en la tabla rest.. y no que por colocar por ejemplo "camisas chinas" me busque en todas las tablas esa palabra...
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #10 (permalink)  
Antiguo 04/03/2013, 15:16
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Respuesta: establecer consulta desde un formulario

ah ya, ok, es que tenia la duda del foreach de trozos , es por si el cliente ingresa varias palabras separadas por espacio ?..

hum bueno y por lo que veo las tablas tienen un campo llamado titulo y descripcion, pero y si pusieras otra tabla que no tenga explicitamente esos campos ?? te toca validar
  #11 (permalink)  
Antiguo 04/03/2013, 15:23
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: establecer consulta desde un formulario

todas las tablas tienen titulo y descripcion... las que son asignadas al buscador ... y si es por si ingresa varias palabras :D
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #12 (permalink)  
Antiguo 04/03/2013, 17:27
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: establecer consulta desde un formulario

Disculpen q reescriba pero hice lo del codigo... y me lanza este error
Warning: mysql_fetch_object() expects parameter 1 to be resource, boolean given in /home/morr0113/public_html/buscador.php on line 153

Código PHP:
<?php
@$busqueda $_POST["for"] ;
@
$base $_POST["for"] ;

//cadena de conexion 
$conexion mysql_connect("localhost","morr0113_admin","morro2012"); 
mysql_select_db("morr0113_2012"$conexion); 
//DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe 
if ($busqueda<>''){ 
      
//Mostramos los titulos de los articulos o lo que deseemos... 
      
$trozos=explode(" ",$busqueda);

$cadbuscar = array();

foreach(
$trozos as $palabra){
     
$cadbuscar[] = "descripcion LIKE '%$palabra%' OR titulo LIKE '%$palabra%'";
}
$query "SELECT descripcion, titulo FROM '$base' WHERE ";
$query .= implode(' or '$cadbuscar);
$query .= " LIMIT 50";

$result=mysql_query($query$conexion);  

}

?>
Código PHP:
<?php  
While($row=mysql_fetch_object($result)) { /**linea 153 **/
  //muestras resultados
 
      
$descripcion=$row->descripcion
      
$titulo=$row->titulo
      echo 
$descripcion." - ".$titulo."<br>"
   } 
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...

Etiquetas: establecer, formulario, mysql, select, sql
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 12:26.