Foros del Web » Programando para Internet » PHP »

Consulta con select like

Estas en el tema de Consulta con select like en el foro de PHP en Foros del Web. Hola buenas noches, primero que todo gracias por leer esto, y segundo, estoy realizando un proyecto de una pagina web de videos ( quisas haz ...
  #1 (permalink)  
Antiguo 28/10/2014, 23:53
 
Fecha de Ingreso: octubre-2014
Mensajes: 70
Antigüedad: 10 años, 1 mes
Puntos: 0
Consulta con select like

Hola buenas noches, primero que todo gracias por leer esto, y segundo, estoy realizando un proyecto de una pagina web de videos ( quisas haz leido algun post con preguntas mias anteriormente ) y resulta de que tengo 4 paginas, donde en una quiero mostrar todo lo que sean videos de accion, otra de comedia, otra de terror, y otra de deportes.
Tengo el siguiente codigo

<?php
include("conexion.php");


$sql = "SELECT nombre, nom_gen, sinopsis, fecha, imagen FROM video INNER JOIN gen_video ON video.idvideo = gen_video.idvideo INNER JOIN generos ON gen_video.idgenero = generos.idgeneros";

$result = mysql_query($sql);



while ($row = mysql_fetch_row($result)){

echo 'nombre:'.$row[0].'<br /> genero:'.$row[1].'<br />sinopsis:'.$row[2].'<br /> fecha:'.$row[3].'<br /> imagen:'.$row[4].'<br /> —————–<br />';

}

?>

En la tabla generos la tengo asi :

idgeneros|nomgen
1 | accion
2 |comedia
3 | deporte
4 |terror

Espero sus respuestas y gracias por leerme.

Saludos
  #2 (permalink)  
Antiguo 29/10/2014, 00:57
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Consulta con select like

Podrías tener un menú con las cuatro opciones en la página principal y cada enlace redirigiría al usuario hacia una nueva página en la que recibirás el dato (el valor de la opción) y realizarías la búsqueda en la BD, para lo cual a tu consulta le añadiría una condición: WHERE gen_video.idgenero = {$_GET['id_genero']}, en donde $_GET['id_genero'] es el valor recibido.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 29/10/2014 a las 12:01
  #3 (permalink)  
Antiguo 29/10/2014, 11:32
 
Fecha de Ingreso: octubre-2014
Mensajes: 70
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Consulta con select like

Cita:
Iniciado por Alexis88 Ver Mensaje
Podrías tener un menú con las cuatro opciones en la página principal y cada enlace redirigiría al usuario hacia una nueva página en la que recibirás el dato (el valor de la opción) y realizarías la búsqueda en la BD, para lo cual a tu consulta le añadiría una condición: WHERE gen_video.idgenero = [$_GET['id_genero']}, en donde $_GET['id_genero'] es el valor recibido.

Saludos
Hola que tal ! Gracias por responder, agregue esa linea a mi codigo que quedaria de esta forma

SELECT nombre, nom_gen, sinopsis, fecha, imagen FROM video INNER JOIN gen_video ON video.idvideo = gen_video.idvideo INNER JOIN generos ON gen_video.idgenero = generos.idgeneros WHERE gen_video.idgenero = [$_GET['1']}

y me me arroja 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 '[$_GET['1']}
LIMIT 0, 25' at line 1 "

Por lo que entendi si no me equivoco en donde dice $_GET['generos'] deberia ir 1,2,3,4 que vendrian siendo los codigos no cierto? bueno igual, me da error de sintaxis no se por que.
Saludos
  #4 (permalink)  
Antiguo 29/10/2014, 11:44
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 10 años, 4 meses
Puntos: 44
Respuesta: Consulta con select like

Abre con un corchete y cierra con una llave. Probá así:

Código PHP:
<?php
    $query 
"SELECT nombre, nom_gen, sinopsis, fecha, imagen FROM video INNER JOIN gen_video ON video.idvideo = gen_video.idvideo INNER JOIN generos ON gen_video.idgenero = generos.idgeneros WHERE gen_video.idgenero = {$_GET['id_genero']}";
?>
O más prolijo:

Código PHP:
<?php
    $genero 
$_GET['id_genero'];

    
$query "SELECT nombre, nom_gen, sinopsis, fecha, imagen FROM video INNER JOIN gen_video ON video.idvideo = gen_video.idvideo INNER JOIN generos ON gen_video.idgenero = generos.idgeneros WHERE gen_video.idgenero = $genero";
?>
Acordate que si el id es un string, debe ir además entre comillas.
Saludos :)
  #5 (permalink)  
Antiguo 29/10/2014, 12:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Consulta con select like

Cita:
Iniciado por eduuh17 Ver Mensaje
me arroja 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 '[$_GET['1']}
LIMIT 0, 25' at line 1 "

Por lo que entendi si no me equivoco en donde dice $_GET['generos'] deberia ir 1,2,3,4 que vendrian siendo los codigos no cierto?
Fue error mío al tipear (esas son las consecuencias de escribir a las 2 de la madrugada ). Debes de abrir una llave, colocar la variable y cerrar la llave, o más simple, asigna $_GET['generos'] a otra variable y luego agregas esta última a la consulta.

Código PHP:
Ver original
  1. //Limpio el valor obtenido y lo asigno a $foo
  2. $foo = mysql_real_escape_string(strip_tags($_GET['generos']));
  3. $query = "SELECT nombre, nom_gen, sinopsis, fecha, imagen FROM video INNER JOIN gen_video ON video.idvideo = gen_video.idvideo INNER JOIN generos ON gen_video.idgenero = generos.idgeneros WHERE gen_video.idgenero = $foo";

Por otro lado, el valor que se especifica en $_GET['generos'], es decir, 'generos', debe corresponder con el nombre de la variable a la cual le asignaste el valor en la página anterior. Por ejemplo, si fuera un enlace, este debería haber tenido una forma similar a esta:

Código HTML:
Ver original
  1. <a href = "ejemplo.php?generos=1>Enlace 1</a>
  2. <a href = "ejemplo.php?generos=2>Enlace 2</a>
  3. <a href = "ejemplo.php?generos=3>Enlace 3</a>
  4. <a href = "ejemplo.php?generos=4>Enlace 4</a>

Si no es así, debes de corregir lo que tienes para que funcione como esperas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 29/10/2014, 12:59
 
Fecha de Ingreso: octubre-2014
Mensajes: 70
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Consulta con select like

Cita:
Iniciado por Alexis88 Ver Mensaje
Podrías tener un menú con las cuatro opciones en la página principal y cada enlace redirigiría al usuario hacia una nueva página en la que recibirás el dato (el valor de la opción) y realizarías la búsqueda en la BD, para lo cual a tu consulta le añadiría una condición: WHERE gen_video.idgenero = [$_GET['id_genero']}, en donde $_GET['id_genero'] es el valor recibido.

Saludos
Hola que tal ! Gracias por responder, agregue esa linea a mi codigo que quedaria de esta forma

SELECT nombre, nom_gen, sinopsis, fecha, imagen FROM video INNER JOIN gen_video ON video.idvideo = gen_video.idvideo INNER JOIN generos ON gen_video.idgenero = generos.idgeneros WHERE gen_video.idgenero = [$_GET['1']}

y me me arroja 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 '[$_GET['1']}
LIMIT 0, 25' at line 1 "

Por lo que entendi si no me equivoco en donde dice $_GET['generos'] deberia ir 1,2,3,4 que vendrian siendo los codigos no cierto? bueno igual, me da error de sintaxis no se por que.
Saludos



JAjaja no te preocupes bro, igual, no entendi lo que tengo que hacer :( tengo que agregar otro codigo $sql debajo del $sql que ya tengo con la variable $foo?
Gracias por responderme
Saludos
  #7 (permalink)  
Antiguo 29/10/2014, 14:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Consulta con select like

Ese $_GET['1'] no existe, es decir, si en el enlace estás pasando 'tupagina.php?generos=1', pues, deberías de recibir $_GET['generos'] independientemente del valor que hayas adjuntado en el enlace. Y si no entiendes algo, pregunta, pues nadie va a adivinar qué es lo que no entiendes.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 29/10/2014, 19:48
 
Fecha de Ingreso: octubre-2014
Mensajes: 70
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Consulta con select like

Cita:
Iniciado por Alexis88 Ver Mensaje
Ese $_GET['1'] no existe, es decir, si en el enlace estás pasando 'tupagina.php?generos=1', pues, deberías de recibir $_GET['generos'] independientemente del valor que hayas adjuntado en el enlace. Y si no entiendes algo, pregunta, pues nadie va a adivinar qué es lo que no entiendes.

Saludos
lo que no entiendo es como iria el codigo, por que por ejemplo ya, tengo una pagina inicio, con un menu, en un menu tengo la parte donde dice generos, y generos estan los archivo html que corresponde a accion comedia deportes y terror, lo que no entendi es como llamar a todos los generos accion, o todos los generos comedias y asi no se si entiendes lo que yo no entiendo xd gracias por tu respuesta !
  #9 (permalink)  
Antiguo 29/10/2014, 21:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Consulta con select like

Un ejemplo simple:

index.html
Código HTML:
Ver original
  1. <a href = "ejemplo.php?id=1">Enlace 1</a>
  2. <a href = "ejemplo.php?id=2">Enlace 2</a>
  3. <a href = "ejemplo.php?id=3">Enlace 3</a>
  4. <a href = "ejemplo.php?id=4">Enlace 4</a>

ejemplo.php
Código PHP:
Ver original
  1. //Realizo la conexión y prosigo
  2. $query = "SELECT nombre, apellido FROM tabla WHERE id = $id";
  3. $result = mysql_query($query);
  4. //Continúa el resto

Tengo cuatro enlaces en 'index.html', en donde cada uno me redirigirá hacia 'ejemplo.php', junto a la variable 'id' y uno de los cuatro valores que puedes ver. En 'ejemplo.php', recibo al valor, lo desinfecto y realizo la consulta. Eso es todo.

Si, a pesar de esta explicación, sigues sin entender, pregunta, pero antes, analiza detalladamente cada línea de código y prueba. No preguntes sin antes haber probado.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 29/10/2014 a las 21:09 Razón: Acotación
  #10 (permalink)  
Antiguo 30/10/2014, 12:38
 
Fecha de Ingreso: octubre-2014
Mensajes: 70
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Consulta con select like

Cita:
Iniciado por Alexis88 Ver Mensaje
Un ejemplo simple:

index.html
Código HTML:
Ver original
  1. <a href = "ejemplo.php?id=1">Enlace 1</a>
  2. <a href = "ejemplo.php?id=2">Enlace 2</a>
  3. <a href = "ejemplo.php?id=3">Enlace 3</a>
  4. <a href = "ejemplo.php?id=4">Enlace 4</a>

ejemplo.php
Código PHP:
Ver original
  1. //Realizo la conexión y prosigo
  2. $query = "SELECT nombre, apellido FROM tabla WHERE id = $id";
  3. $result = mysql_query($query);
  4. //Continúa el resto

Tengo cuatro enlaces en 'index.html', en donde cada uno me redirigirá hacia 'ejemplo.php', junto a la variable 'id' y uno de los cuatro valores que puedes ver. En 'ejemplo.php', recibo al valor, lo desinfecto y realizo la consulta. Eso es todo.

Si, a pesar de esta explicación, sigues sin entender, pregunta, pero antes, analiza detalladamente cada línea de código y prueba. No preguntes sin antes haber probado.

Saludos
Hola, ya entiendo como funciona el codigo, por ejemplo en el index el valor ejemplo.php?id=1 el id=1 vendria siendo el valor accion en base de datos, despues ese valor llama a la consulta ejemplo.php en donde tengo el $id = mysql_real_escape_string(strip_tags($_GET['id'])); seria el lugar donde recibe el valor 1 del genero accion, despues de eso realiza la consulta, ahora no se, si hice mal la consulta o no, creo que si porque no me resulta. Te dejo el codigo para ver donde me equivoque, gracias por toda tu ayuda

$query = $query = "SELECT nombre, nom_gen, sinopsis, fecha, imagen FROM video INNER JOIN gen_video ON video.idvideo = gen_video.idvideo INNER JOIN generos ON gen_video.idgenero = generos.idgeneros WHERE gen_video.idgenero = $id";

Creo que la parte de aca es donde estoy haciendo algo mal

WHERE gen_video.idgenero = $id";

Igual gracias por todo bro.

saludos
  #11 (permalink)  
Antiguo 30/10/2014, 13:23
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 10 años, 4 meses
Puntos: 44
Respuesta: Consulta con select like

El campo id en la base es de casualidad un string? Si es así, tenés que encomillar la variable:

Código PHP:
<?php
    $query 
"SELECT nombre, nom_gen, sinopsis, fecha, imagen FROM video INNER JOIN gen_video ON video.idvideo = gen_video.idvideo INNER JOIN generos ON gen_video.idgenero = generos.idgeneros WHERE gen_video.idgenero = '$id'";
?>
Saludos
  #12 (permalink)  
Antiguo 30/10/2014, 22:42
 
Fecha de Ingreso: octubre-2014
Mensajes: 70
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Consulta con select like

Hola hola que tal, por lo que tengo entendido el id vendria siendo el codigo de barra por asi decirlo, porque tengo en la tabla generos, la parte de idgeneros que es 1, 2 , 3 , 4 y depsues viene el nom_gen que es nombre en el mismo orden accion, comedia, deportes, terror, no se si me explique bien, igual, lo puse con y sin comilas y me aparece este error

Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in


Gracias por tu ayuda igual !
  #13 (permalink)  
Antiguo 30/10/2014, 22:45
 
Fecha de Ingreso: octubre-2014
Mensajes: 70
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Consulta con select like

Muchas gracias a todos los que me ayudaron, ya descubri mi problema, no puse el include del conexion!!! lo siento por molestarlos tantos. Gracias por todo.

Saludos a los que me ayudaron se les agradece mucho

Etiquetas: fecha, mysql, select, sql, tabla
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:15.