Foros del Web » Programando para Internet » PHP »

Coger resultados de una búsqueda en PHP

Estas en el tema de Coger resultados de una búsqueda en PHP en el foro de PHP en Foros del Web. Buenas a todos por aquí. Soy nuevo en el foro y me he registrado recientemente, pues quería saber si sois tan amables de intentar ayudarme ...
  #1 (permalink)  
Antiguo 10/04/2013, 08:20
Avatar de Txustra  
Fecha de Ingreso: abril-2013
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Coger resultados de una búsqueda en PHP

Buenas a todos por aquí. Soy nuevo en el foro y me he registrado recientemente, pues quería saber si sois tan amables de intentar ayudarme en todo lo posible. Aquí os comento la situación:

Resulta que estoy realizando un proyecto integrado para fin de curso (formación profesional) que consiste en realizar una biblioteca de música, o en otras palabras, un buscador de grupos y cantantes que te vaya mostrando su biografía, discografía y tal.

Me explicaré un poco como quiero el diseño general para ser más claro aún si cabe. Quiero tener una página COMÚN para insertar ahí desde mysql los datos que tengo almacenados (llamémosla "main.php", "disco.php", "galeria.php"...) que como ya dije serían comunes y a partir de ahí insertar.

La duda me surge cuando tengo que escoger los resultados de la búsqueda, es decir, cómo saber qué resultado he pinchado yo si tenemos un listado largo para que coga los datos de éste. La verdad no sé si me explico bien, no es lo mio

Os pongo unas imágenes de muestra:


Esa imágen muestra los resultados de la palabra "sona" y al pinchar en cualquiera de ellos nos mandaría a "main.php".

Pues bien, esa es mi duda íntegra. ¿Cómo saber cual de las opciones ha pinchado el usuario para pder trabajar con las consultas posteriores en la página main.php referentes a ese click?

Como curiosidad, me di cuenta que una página que suelo frecuentar está compuesta casi igual que como yo deseo. Os lo mostraré:


Lo que me resultó curioso fue la página que te redirecciona cualquiera resultado que pinches: una página común para todos pero le añade "?gameid=x" y creo que es lo que yo quiero pero no tengo ni idea de php (sólo lo básico) y quería saber si me podrían ayudar ya que nunca viene mal aprender...


Espero que no os importe la biblia y podáis ayudarme.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 10/04/2013, 08:28
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: Coger resultados de una búsqueda en PHP

Yo te aocnsejaría que hicieran varias páginas, para artistas/discos/generos, entonces loq ue has de pasarle por el $_GET es el id del resultadod e la búqeuda y en esa página, con ese id, ahcer una consulta sql.
__________________
No diseñes usando tablas.
  #3 (permalink)  
Antiguo 10/04/2013, 08:32
Avatar de Txustra  
Fecha de Ingreso: abril-2013
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Respuesta: Coger resultados de una búsqueda en PHP

Cita:
Iniciado por hades87 Ver Mensaje
Yo te aocnsejaría que hicieran varias páginas, para artistas/discos/generos, entonces loq ue has de pasarle por el $_GET es el id del resultadod e la búqeuda y en esa página, con ese id, ahcer una consulta sql.
Como ya he comentado, esas páginas que dices que cree son las que quiero que sean comunes, en mi caso "main.php", "bio.php"... y no una por cada artista o canción de la base de datos, que eso sería un follon y quedaría horriblemente feo.

La cuestión es: ¿cómo sé yo la id del grupo cuando pincho en ese resultado?
  #4 (permalink)  
Antiguo 10/04/2013, 08:34
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 12 años
Puntos: 8
Respuesta: Coger resultados de una búsqueda en PHP

Claro le añade ?gameid=x por que me imagino que esta pasando un identificador por url.. eso lo podrias hacer al momento de tener los resultados de la consulta de tu buscador colocas un identificador por url y el nombre.. ejemplo:

Código PHP:
Ver original
  1. $valor=mysql_query($consulta);
  2. echo '<a href='main.php?gameid="'.$valor['id'].'">'.$valor['nombre'].'</a>

con la etiqueta <a> creas el link que al presionar te va a mandar a la pagina main.php en la que se mostraran los resultados...
  #5 (permalink)  
Antiguo 10/04/2013, 08:36
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: Coger resultados de una búsqueda en PHP

Por que a el id lo has de poner cuando haces la búsqueda, quedaría por ejemplo así:

artista.php?id=<id_registro>

ese es el enlace que has de generar en la búsqueda
__________________
No diseñes usando tablas.
  #6 (permalink)  
Antiguo 10/04/2013, 08:38
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 12 años
Puntos: 8
Respuesta: Coger resultados de una búsqueda en PHP

por cierto tengo unos errores de comillas corrigo:

Código PHP:
Ver original
  1. echo '<a href="main.php?gameid="'.$valor['id'].'">'.$valor['nombre'].'</a>';
  #7 (permalink)  
Antiguo 10/04/2013, 08:46
Avatar de Txustra  
Fecha de Ingreso: abril-2013
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Respuesta: Coger resultados de una búsqueda en PHP

Cita:
Iniciado por oscard41 Ver Mensaje
por cierto tengo unos errores de comillas corrigo:

Código PHP:
Ver original
  1. echo '<a href="main.php?gameid="'.$valor['id'].'">'.$valor['nombre'].'</a>';
Serías tan amable de decirme, según mi código, donde tendría que poner exactamente eso? Te pego el code:

Código PHP:
<?php
//session_start();
$server_link mysql_connect("localhost""root""");
if(!
$server_link){
    die(
"Falló la Conexión "mysql_error());
}
// seleccionamos la base de datos
$db_selected mysql_select_db("biblio"$server_link);
if(!
$db_selected){
    die(
"No se pudo seleccionar la Base de Datos "mysql_error());
}
// varificamos que el formulario halla sido enviado

if(isset($_POST['buscar']) && $_POST['buscar'] == 'Buscar'){
    
$_SESSION['grupo']=$_REQUEST['grupo'];
    
$grupo addslashes($_POST['grupo']);
    
// hacemos la consulta de busqueda
    // ver explicación mas abajo
    
if ($grupo==null){
        echo 
"Debe introducir algo en el campo de búsqueda.";
    }
    else{
    
$sqlBuscar mysql_query("SELECT nombregrupo from grupos where nombregrupo like '%$grupo%'"$server_link)
                            or die(
mysql_error());
    
$totalRows mysql_num_rows($sqlBuscar);
    
// Enviamos un mensaje
    // indicando la cantidad de resultados ($totalRows)
    // para la frase busada ($frase)
    
if(!empty($totalRows)){
        echo 
stripslashes("<p>Resultados de la búsqueda que contienen <strong>$grupo</strong>:</p>");
        
// mostramos los resultados
        
while($row mysql_fetch_array($sqlBuscar)){
            echo 
"<strong><a href='main.php'>".$row['nombregrupo']."</a></strong><br/>";
             }
    }
    
// si se ha enviado vacio el formulario
    // mostramos un mensaje del tipo Oops...!
    // <img src='".$row['imagen']."'></img>  --Comando para imágenes
    // si no hay resultados //
    
else{ echo "Oops! No se ha encontrado ningún resultado. Prueba con otra búsqueda.";
        }
    }
}
Supongo que tendría que hacer un $sqlBuscar2 con la sentencia SELECT recogiendo el idgrupo (así es como lo he llamado en la tabla).

Gracias y perdona la molestia.
  #8 (permalink)  
Antiguo 10/04/2013, 08:50
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: Coger resultados de una búsqueda en PHP

en tu select has de seleccionar el id del grupo también y luego en el while añadirlo

echo "<strong><a href='main.php?groupo='$row['nombregrupo']>".$row['nombregrupo']."</a></strong><br/>";
__________________
No diseñes usando tablas.
  #9 (permalink)  
Antiguo 10/04/2013, 09:45
Avatar de Txustra  
Fecha de Ingreso: abril-2013
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Respuesta: Coger resultados de una búsqueda en PHP

Una vez configurado eso, como hago la cláusula where dentro de las páginas main.php, disco.php... y tal para que me coja los del resultado que pinche en la búsqueda?
  #10 (permalink)  
Antiguo 10/04/2013, 09:48
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: Coger resultados de una búsqueda en PHP

dentro de la página main, simplemente has de hacer un select que sea algo así:

select * from artista where id=<id_artista>

entonces una vez obtenido los resultados simplemente vas mostrando la información
__________________
No diseñes usando tablas.
  #11 (permalink)  
Antiguo 10/04/2013, 11:22
Avatar de Txustra  
Fecha de Ingreso: abril-2013
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Respuesta: Coger resultados de una búsqueda en PHP

Gracias a ambos por esas respuestas, pero me gustaría una breve expliación explicándome (evidentemente) qué es lo que haría ese proceso de una manera detallada, más que nada para comprenderlo mejor y así llevarlo también mejor a la práctica. Es que sinceramente no entiendo ese proceso de cómo sabe en la página main.php que he pinchado en ese resultado de la búsqueda por más vueltas que le de..
  #12 (permalink)  
Antiguo 10/04/2013, 12:55
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 12 años
Puntos: 8
Respuesta: Coger resultados de una búsqueda en PHP

Cita:
Iniciado por Txustra Ver Mensaje
Gracias a ambos por esas respuestas, pero me gustaría una breve expliación explicándome (evidentemente) qué es lo que haría ese proceso de una manera detallada, más que nada para comprenderlo mejor y así llevarlo también mejor a la práctica. Es que sinceramente no entiendo ese proceso de cómo sabe en la página main.php que he pinchado en ese resultado de la búsqueda por más vueltas que le de..
la etiqueta <a></a> es para hacer links entonces cuando hacemos <a href='xpagina.php'>nombre link</a> lo que hacer es que va a salir "nombre link" y al darle en nombre link te va a mandar a la pagina que colocaste dentro de "href" entonces si a la pagina de href le colocas un "?" -->"xpagina?nombreVariable=valor" lo que haces es pasar una variable por la url del navegador..

de esa manera puedes mandar el id por la url del navegador y en la pagina main.php tienes que recibir esa url con $_GET['nombre de la variable']...

y al recibir esa variable haces la colsulta que vallas a hacer en esa pagina...
  #13 (permalink)  
Antiguo 10/04/2013, 15:12
Avatar de Txustra  
Fecha de Ingreso: abril-2013
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Respuesta: Coger resultados de una búsqueda en PHP

Lo he puesto tal que así y no me pilla el id... :(

Código PHP:
if(isset($_POST['buscar']) && $_POST['buscar'] == 'Buscar'){
    
$_SESSION['grupo']=$_REQUEST['grupo'];
    
$grupo addslashes($_POST['grupo']);
    
// hacemos la consulta de busqueda
    // ver explicación mas abajo
    
if ($grupo==null){
        echo 
"Debe introducir algo en el campo de búsqueda.";
    }
    else{
    
$sqlBuscar mysql_query("SELECT idgrupo,nombregrupo from grupos where nombregrupo like '%$grupo%'"$server_link)
                            or die(
mysql_error());
    
$totalRows mysql_num_rows($sqlBuscar);
    
// Enviamos un mensaje
    // indicando la cantidad de resultados ($totalRows)
    // para la frase busada ($frase)
    
if(!empty($totalRows)){
        echo 
stripslashes("<p>Resultados de la búsqueda que contienen <strong>$grupo</strong>:</p>");
        
// mostramos los resultados
        
while($row mysql_fetch_array($sqlBuscar)){
            echo 
'<strong><a href="main.php?idgrupo="'.$row['idgrupo'].'">'.$row['nombregrupo'].'</a></strong><br/>';
             }
    }
    
// si se ha enviado vacio el formulario
    // mostramos un mensaje del tipo Oops...!
    // <img src='".$row['imagen']."'></img>  --Comando para imágenes
    // si no hay resultados //
    
else{ echo "Oops! No se ha encontrado ningún resultado. Prueba con otra búsqueda.";
        }
    }

  #14 (permalink)  
Antiguo 10/04/2013, 15:20
Avatar de Txustra  
Fecha de Ingreso: abril-2013
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Respuesta: Coger resultados de una búsqueda en PHP

Ya he resuelto la duda, sobraba la doble comilla despues del signo igual.

Lo he probado y efectivamente funciona, muchísimas gracias de verdad, me habéis ayudado mucho entre ambos.

Código PHP:
echo '<strong><a href="main.php?idgrupo="'.$row['idgrupo'].'">'.$row['nombregrupo'].'</a></strong><br/>'
Si no os importa, prefiero no marcar el tema como solucionado para futuras dudas si surgen.

Muchísimas gracias nuevamente
  #15 (permalink)  
Antiguo 11/04/2013, 02:10
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: Coger resultados de una búsqueda en PHP

Igualmente te aconsejo que en vez de main, llames a cada página con su nombre: grupo.php, artista.php, disco.php, de esta forma tendrás cada páginas configurada para una cosa en concreto.

Además para manejar las conexiones a la BBDD te vendría bien por ejemplo ezSQL
__________________
No diseñes usando tablas.
  #16 (permalink)  
Antiguo 11/04/2013, 03:40
Avatar de Txustra  
Fecha de Ingreso: abril-2013
Mensajes: 21
Antigüedad: 11 años
Puntos: 0
Respuesta: Coger resultados de una búsqueda en PHP

Tranquilo hades87, desde el primer momento tengo pensado separar las páginas para cada cosa.

Respecto al programa ese que dices, la verdad le he estado echando un vistazo, pero me da que no tendré ni idea de como usarlo, parece algo complejo... no sé.

Gracias igualmente.
  #17 (permalink)  
Antiguo 11/04/2013, 04:12
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: Coger resultados de una búsqueda en PHP

Bueno, es cuestión de echarle ganas, piensa que toda la programación importante en PHP esta orientada a objetos y tarde o temprano tendrás que acostumbrarte a ello.
__________________
No diseñes usando tablas.

Etiquetas: busqueda, resultados
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 21:40.