Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Jaes en 6 Diciembre 2012, 03:07 am



Título: [?][php][mysql]Enviar consulta en un formulario
Publicado por: Jaes en 6 Diciembre 2012, 03:07 am
Saludos.
Tengo un formulario en index.php con un boton con action="busqueda.php"
y me gustaria enviar el formulario y busqueda.php procesara la consulta.

Algo como SELECT * FROM peliculas WHERE tema.pelicula=$_POST['tema'] && duracion.pelicula=$_POST['duracion'];


¿Alguien me puede echar una mano? Se agradece cualquier punto de vista.

pd:Los campos del formulario son del tipo menu



Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: Shell Root en 6 Diciembre 2012, 18:00 pm
:http://www.w3.org/TR/html401/interact/forms.html


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: Jaes en 7 Diciembre 2012, 18:20 pm
Quiero que me disculpen por el comentario de la otra noche, era tarde y estaba muy cansado.

@Shell Root Gracias por la documentación pero no encunetro la solución a mi problema.

tengo la tabla pelicula
con un nombre_id (P)(AI),nombre,tipo_id
1 Cube 1
2 Aeonflux 1
3 Los Cronocrimenes 2

tabla tipo_pelicula
con tipo_id (P)(AI),tipo_pelicula
1 Ciencia Ficcion
2 Accion
3 Comedia


El problema lo tengo en la consulta

$query_obtener_datos = "SELECT * pelicula, tipo_pelicula WHERE tipo_pelicula.tipo_id=pelicula.tipo_id;";

la condicion que quiero que cumpla es que se muestren todos los campos en los tipo_pelicula es un item menu/lista que forma parte del formulario con metodo Post
y la acción con el archivo que ejecuta la consulta.


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: Jaes en 7 Diciembre 2012, 18:26 pm
$query_obtener_datos = "SELECT * FROM pelicula, tipo_pelicula WHERE tipo_pelicula.tipo_id=pelicula.tipo_id;";


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: Jaes en 8 Diciembre 2012, 00:40 am

$query_obtener_datos = "SELECT * FROM tipo_pelicula left join  pelicula on tipo_pelicula.tipo_id=pelicula.tipo_id";

¿Estoy más cerca de la solución? ..que alguna alma caritativa me ilumine porfavor.


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: Jaes en 10 Diciembre 2012, 05:46 am
Sigo ofuscado en este tema.
Código
  1. //$barrio_id=$_POST['barrio_id'];
  2.  
  3. $tipo_id = 1;
  4.  
Código
  1. $query_obtener_datos = "SELECT * pelicula, tipo_pelicula WHERE tipo_pelicula.tipo_id=pelicula.tipo_id AND
  2. tipo_pelicula.tipo_id = ".$tipo_id." ";
  3.  

Así la consulta funciona perfectamente, el problema esta cuando quiero pasar el
$_POST del formulario. ¿Debo llevar mi phpmyadmin a un exoscista? Ruego ayuda.


Título: Re: [?][php][mysql]Enviar consulta en un formulario[Solucionado]
Publicado por: Jaes en 10 Diciembre 2012, 06:01 am
    $query_obtener_datos = "SELECT * pelicula, tipo_pelicula WHERE tipo_pelicula.tipo_id=pelicula.tipo_id AND
    tipo_pelicula.tipo_id ='$tipo_id' ";

y en el formulario dejar action vacio.


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: 01munrra en 11 Diciembre 2012, 22:21 pm
has probado con un join?.....   muestra la estructura de cada tabla y si tiene relacion una con la otra>..


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: & eDu & en 12 Diciembre 2012, 02:36 am
Podrías explicarte mejor.


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: 01munrra en 12 Diciembre 2012, 13:12 pm
ok, fijate, estas son tus tablas(corrijeme si me equivoco)

tabla pelicula
-nombre_id (P)(AI)
-nombre
-tipo_id


tipo_pelicula
tipo_id (P)(AI),
tipo_pelicula


entre estas tablas existe una relacion, por medio del campo tipo_pelicula, entonces para que la consulta sea mas especifica y menos compleja, le aplicas un join a tu consulta, que daria de esta forma:

Código
  1.  
  2. $query_obtener_datos = "SELECT * pelicula as p inner join tipo_pelicula as tp on tp.tipo_id=p.tipo_id where tp.tipo_id = ".$tipo_id." ";
  3.  
  4.  

me entiendes?..

Saludos!!!


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: Jaes en 9 Enero 2013, 04:12 am
Perdona por el retraso, estuve distraido.

tengo como tu dices las tablas

tabla pelicula
-pelicula_id (P)(AI)
-nombre
-tipo_id
-foto_id


tipo_pelicula
tipo_id (P)(AI),
tipo_pelicula
duracion int unsigned


#Y he añadido una galeria
galeria
foto_id (P)(AI)
nombrearchivo
pelicula_id


Después de pelear un poco he logrado una consulta que me muestre también la imagen de la pelicula
Código
  1. $query_obtener_datos = "SELECT * FROM pelicula, tipo_pelicula, galeria WHERE pelicula.tipo_id=tipo_pelicula.tipo_id AND pelicula.foto_id =galeria.foto_id";

Sigo intentando recoge las variable del formulario
Código
  1. $tipo_id=isset($_POST['tipo_id']) ? $_POST['tipo_id'] : null;

para luego poder lanzar la consulta
Código
  1. $query_obtener_datos = "SELECT * FROM pelicula, tipo_pelicula, galeria WHERE pelicula.tipo_id=tipo_pelicula.tipo_id AND pelicula.foto_id =galeria.foto_id  
  2. AND pelicula.tipo_id ='$tipo_id' ";

Lo que no entiendo de la consulta que me has propuesto es la sintaxis en la condición where cuando asignas el valor de la variable $tipo_id de la forma tp.tipo_id = ".$tipo_id."

De esa forma mi me da el siguiente error,
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near '' at line 1

Yo la asignación la estoy haciendo tp.tiponada_id = '$tipo_id'
Aunque cuando le añado esa instrucción a la consulta no me devuelve nada, sin ella, me muestra todas las peliculas que hay.

Muchas gracias. Saludos.


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: Jaes en 9 Enero 2013, 15:55 pm
 Ok, la consulta funciona, al igual que la que me planteabas con el cambio que te he comentado.

Mis agradecimentos.


Título: Re: [?][php][mysql]Enviar consulta en un formulario
Publicado por: 01munrra en 10 Enero 2013, 12:09 pm
tenias un error en la sintaxis de la consulta, el resultado te lanzaba el error.


me alegro que dieras con la solución...