Foros del Web » Programando para Internet » PHP »

Haciendo el buscador(problemas)

Estas en el tema de Haciendo el buscador(problemas) en el foro de PHP en Foros del Web. Hola nuevamente, a todos, verán sigo con el tema del buscador, haciendolo de nuevo; el tema es que al apretar en search, sigue sin buscar ...
  #1 (permalink)  
Antiguo 10/04/2010, 07:12
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Haciendo el buscador(problemas)

Hola nuevamente, a todos, verán sigo con el tema del buscador, haciendolo de nuevo; el tema es que al apretar en search, sigue sin buscar nada, o sea se quedan en blanco los campos donde deberían aparecer cosas de la bd.

Les muestro el código que tengo hasta ahora, y ustedes me dirán que estoy haciendo mal, si me he olvidado algo, o si por ahi me olvidé de declarar algo.

Gracias de antemano.

Aqui el search.php:

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. session_name('pLogin');
  4.  
  5.  
  6. include("connect.php");
  7.  
  8. if (isset($_POST['search'])){
  9. $search_number = rand(1000000000,9999999999);
  10. echo "<script>document.location.href='show_results.php?search=".$search_number."&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&relationsearch=".$_POST['iwanted']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."'</script>";
  11. }
  12.  
  13.  
  14.  
  15.  
  16. ?>


Aquí el show_results.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3. error_reporting(E_ALL ^ E_NOTICE);
  4.  
  5. session_name('pLogin');
  6. include("function.php");
  7. include("connect.php");
  8.  
  9.  
  10. if(!isset($_POST['page'])){
  11.     $page=1;
  12.     }else{
  13.     $page=$_POST['page'];
  14.     }
  15.     $max_results=10;
  16.     $from=(($page* $max_results) - $max_results);
  17.    
  18.     $get_results=mysql_query("SELECT * FROM prueba WHERE firstname='".$_POST['firstname']."' AND sexo='".$_POST['gender']."' AND relationsearch='".$_POST['iwanted']."' AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."'  LIMIT $from, $max_results");
  19.    
  20.     if(mysql_num_rows($get_results)==0){
  21.        
  22.     }else{
  23.        
  24.         while($got_results=mysql_fetch_array($get_results)){
  25.             $get_results=getSqlRow("SELECT*FROM prueba WHERE usuario'".$got_results['usuario']."'");
  26.             $get_birth_day=$get_result_row['birth_day'];
  27.             $get_birth_month= $get_result_row['birth_month'];
  28.             $get_birth_year=$get_result_row['birth_year'];
  29.            
  30.            
  31.         }
  32. }
  33.  
  34. $total_results=mysql_result(mysql_query("SELECT COUNT(*) as Num FROM prueba WHERE firstname='".$_POST['firstname']."' AND sexo='".$_POST['gender']."' AND relationsearch='".$_POST['iwanted']."' AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."'"),0);
  35. $total_pages=ceil($total_results / $max_results);
  36.  
  37. if($page > 1) {
  38.     $prev=($page - 1);
  39.     echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$prev&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&relationsearch=".$_POST['iwanted']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">Anterior</a>";
  40.             }
  41.            
  42.             for($i = 1; $i <= $total_pages; $i++){
  43.             if(($page) == $i){
  44.             echo "$i ";
  45.             } else {
  46.             echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$i&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&relationsearch=".$_POST['iwanted']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">$i</a> ";
  47.             }
  48.             }
  49.            
  50.             if($page < $total_pages){
  51.             $next = ($page + 1);
  52.             echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$next&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&relationsearch=".$_POST['iwanted']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">Siguiente</a>";
  53.             }
  54.             echo "</center>";
  55.  
  56.  
  57.  
  58. ?>
  #2 (permalink)  
Antiguo 10/04/2010, 07:17
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Haciendo el buscador(problemas)

Lo que haces ahi es una busqueda exacta, quizas tu intencion es que si pones, por ejemplo, "Mario", en el buscador....te devuelva todos los resultados de personas que tengan de nombre "Mario", con ese codigo no lo vas a conseguir. De hecho tenes q tener todos los campos completados para hacer la busqueda...

Saludos.
  #3 (permalink)  
Antiguo 10/04/2010, 07:26
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Haciendo el buscador(problemas)

Si, entiendo, pero no es ese el tipo de búsqueda que estoy intentando hacer, sino del tipo select, o sea que el usuario elige, desde un select por ejemplo una persona de Argentina, digamos, y que el buscador le tire los resultados de todas las personas que viven en Argentina.

O sea que está mal lo que estoy haciendo?
  #4 (permalink)  
Antiguo 10/04/2010, 07:34
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Haciendo el buscador(problemas)

Vos tenes este select puesto

Código PHP:
$get_results=mysql_query("SELECT * FROM prueba WHERE firstname='".$_POST['firstname']."' AND sexo='".$_POST['gender']."' AND relationsearch='".$_POST['iwanted']."' AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."'  LIMIT $from, $max_results"); 
En ningun momento haces referencia a que queres que sean de un pais o lo que sea, si no que buscas a una persona en base a los datos de la base de datos.....vos hiciste este codigo? O lo sacaste de algun lado?

Si queres que, al elegir un valor de un combo, se muestre en pantalla los resultados, es mucho mas facil si lo haces con un select y AJAX, bastante mas simple que lo que nos estas mostrando va a quedar seguro.

Saludos.
  #5 (permalink)  
Antiguo 10/04/2010, 07:39
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Haciendo el buscador(problemas)

A ver en la parte del html del search.php tengo algo asi
Código HTML:
Ver original
  1. <select name="gender" style="background-color:#8A6CB0" ><option value="ambos">Ambos sexos<option value="Masculino" selected="selected" >Masculino</option><option value="Femenino">Femenino</option>
  2.   </select>
Te digo lo del pais, de ejemplo, digamos algo asi, que busque por genero.

Si, algo asi mitad y mitad.
  #6 (permalink)  
Antiguo 10/04/2010, 07:53
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Haciendo el buscador(problemas)

Fíjate en esta línea:
Código PHP:
Ver original
  1. $get_results=getSqlRow("SELECT*FROM prueba WHERE usuario'".$got_results['usuario']."'");
Veo tres errores:
1.- Falta un espacio entre select y *
2.- Falta un espacio entre * y from
3.- falta un = entre usuario y '
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #7 (permalink)  
Antiguo 10/04/2010, 08:07
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Haciendo el buscador(problemas)

No, tampoco funciona con eso. Gracias por responder.
  #8 (permalink)  
Antiguo 10/04/2010, 09:32
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Haciendo el buscador(problemas)

La verdad es que no entiendo a qué viene la función getSqlRow();
¿Porqué no pones el código fuente de esta función?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #9 (permalink)  
Antiguo 10/04/2010, 14:55
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Haciendo el buscador(problemas)

Hola, bueno resolvi un par de cosas, la primera es que puedo hacer el buscador por palabras, o sea digamos por nombre, apellido, etc.
Pero lo que todavia no me sale es hacer el buscador con los select. este es el codigo que tengo ahora. alguien tiene alguna idea?

gracias a quienes han respondido.

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3.  
  4. include("connect.php");
  5. $usuario = $_SESSION['usuario'];
  6.  
  7.  
  8.  
  9. if(!isset($_GET['page'])){
  10.             $page = 1;
  11.             } else {
  12.             $page = $_GET['page'];
  13.             }
  14.             $max_results = 10;
  15.             $from = (($page * $max_results) - $max_results);
  16.            
  17.             $query = mysql_query("SELECT * FROM prueba WHERE sexo='".$_POST['gender']."'  AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."'  LIMIT $from, $max_results");
  18.            
  19.             if (mysql_num_rows($query)==0){
  20. } else {
  21.            
  22.             while ($user_ok = mysql_fetch_array($query)){
  23.            
  24.             $result_usuario = mysql_query("SELECT * FROM prueba WHERE usuario='".$user_ok['usuario']."'");
  25.    
  26.            
  27.            
  28.             $result_ocupacion = mysql_query("SELECT * FROM prueba WHERE ocupacion='".$user_ok['ocupacion']."'");
  29.            
  30.             $result_hijos = mysql_query("SELECT * FROM prueba WHERE hijos='".$user_ok['hijos']."'");
  31.            
  32.             }
  33.             }
  34.            
  35.             $result = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM prueba WHERE sexo='".$_POST['gender']."'  AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."'"),0);
  36.             $total_pages = ceil($result / $max_results);
  37.            
  38.             if($page > 1){
  39.             $prev = ($page - 1);
  40.             echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$prev&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">Previous</a>";
  41.             }
  42.            
  43.             for($i = 1; $i <= $total_pages; $i++){
  44.             if(($page) == $i){
  45.             echo "$i ";
  46.             } else {
  47.             echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$i&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">$i</a> ";
  48.             }
  49.             }
  50.            
  51.             if($page < $total_pages){
  52.             $next = ($page + 1);
  53.             echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$next&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">Next</a>";
  54.             }
  55.             echo "</center>";
  56.            
  57.  
  58.  
  59. ?>

y en el html le pongo algo asi <?php echo $result_ocupacion;?> pero nada se queda en blanco eso. no aparece nada.

Última edición por den_22; 11/04/2010 a las 11:23
  #10 (permalink)  
Antiguo 11/04/2010, 11:28
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Haciendo el buscador(problemas)

Hola, por las dudas posteo el codigo del buscador por palabras, por favor si alguien me puede ayudar con el del select, le agradeceria mucho.

gracias.

den_22



Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. error_reporting(E_ALL ^ E_NOTICE);
  7. include("connect.php");
  8. $usuario=$_SESSION['usuario'];
  9.  
  10.  
  11. if ($_GET['search']=="firstname"){
  12.             $firstname = $_POST['firstname'];
  13.             $query = mysql_query("SELECT * FROM prueba WHERE firstname LIKE '%$firstname%' ORDER BY firstname DESC LIMIT 40");
  14.            
  15.             if (mysql_num_rows($query)==0){
  16. } else {
  17.             while($user_ok = mysql_fetch_array($query)){
  18.  
  19. } } }
  20.  
  21.  
  22.         if ($_GET['search']=="lastname"){
  23.             $lastname = $_POST['lastname'];
  24.             $query = mysql_query("SELECT * FROM prueba WHERE lastname LIKE '%$lastname%' ORDER BY lastname DESC LIMIT 40");
  25.            
  26.             if (mysql_num_rows($query)==0){
  27.  
  28.             } else {
  29.             while($user_ok= mysql_fetch_array($query)){
  30.  
  31. } } }
  32.  
  33. if ($_GET['search']=="favourite_music"){
  34.             $favourite_music = $_POST['favourite_music'];
  35.             $query = mysql_query("SELECT * FROM prueba WHERE favourite_music LIKE '%$favourite_music%'  ORDER BY favourite_music DESC LIMIT 40");
  36.            
  37.             if (mysql_num_rows($query)==0){
  38.                
  39.                 } else {
  40.             while($user_ok = mysql_fetch_array($query)){
  41.                
  42.                 } } }
  43.                
  44.                             if ($_GET['search']=="favourite_movie"){
  45.             $favourite_movie = $_POST['favourite_movie'];
  46.             $query = mysql_query("SELECT * FROM prueba WHERE favourite_movie LIKE '%$favourite_movie%' ORDER BY favourite_movie DESC LIMIT 40");
  47.            
  48.             if (mysql_num_rows($query)==0){
  49.                 } else {
  50.             while($user_ok = mysql_fetch_array($query)){
  51.                
  52.                 } } }
  53.  
  54.  
  55.  
  56. ?>


en el html pongo <?php echo $user_ok['favourite_movie']; ?>
  #11 (permalink)  
Antiguo 12/04/2010, 15:32
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Haciendo el buscador(problemas)

Hola, se que suena reiterativo, pero realmente necesito ayuda con esto, no lo puedo resolver.
Dos cosas, la primera es que como ya dije el buscador por palabras anda, pero este de los select no, entonces al darle en buscar, lo que hace es mostrarme los datos pero del usuario de la sesion, o sea nada que ver.
Seguro que el error está en la parte de getsqlnumber o getsqlrow.

Acá dejo el codigo, si alguien tiene interes en ayudarme le agradeceria muchisimo.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6.  
  7. error_reporting(E_ALL ^ E_NOTICE);
  8. session_name('pLogin');
  9. include_once ("connect.php");
  10.  
  11.  
  12. $usuario=$_SESSION['usuario'];
  13.  
  14.  
  15. if(!isset($usuario)){
  16.  
  17. echo 'No se ha seleccionado ningun usuario.';
  18.  
  19. }else{
  20.  
  21.  
  22. $query=mysql_query("SELECT * FROM prueba WHERE usuario='$_SESSION[usuario]' ");
  23.  
  24. if(mysql_num_rows($query)>0){
  25. $user_ok=mysql_fetch_array($query);
  26.  
  27.  
  28.  
  29.  
  30.  
  31. //todo comprobado, ahora solo falta mostrar los datos
  32. echo 'Bienvenid@ <b>'.$user_ok['usuario'].'</b><br>';
  33.  
  34. }else{
  35.  
  36. echo 'La id de usuario seleccionada no existe';
  37. }
  38. }
  39.  
  40. function getsqlrow($query) {
  41. $result = mysql_query($query) or die(mysql_error());
  42. $row = mysql_fetch_array($result);
  43. return $row;
  44. }
  45.  
  46. function getsqlnumber($sqlQuery) {
  47. $query=mysql_query($sqlQuery);
  48. $result=mysql_num_rows($query);
  49. return $result;
  50. }
  51.  
  52.  
  53. if(!isset($_GET['page'])){
  54.             $page = 1;
  55.             } else {
  56.             $page = $_GET['page'];
  57.             }
  58.             $max_results = 10;
  59.             $from = (($page * $max_results) - $max_results);
  60.            
  61.             $query = mysql_query("SELECT * FROM prueba WHERE sexo='".$_POST['gender']."'  AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."'  LIMIT $from, $max_results");
  62.            
  63.             if (mysql_num_rows($query)==0){
  64. } else {
  65.            
  66.             while ($user_ok = mysql_fetch_array($query)){
  67.            
  68.             $get_result_row = getsqlrow("SELECT * FROM prueba WHERE usuario='".$user_ok['usuario']."'");
  69.    
  70.            
  71.            
  72.             $result_ocupacion = getsqlnumber("SELECT * FROM prueba WHERE ocupacion='".$user_ok['ocupacion']."'");
  73.            
  74.             $result_hijos = getsqlnumber("SELECT * FROM prueba WHERE hijos='".$user_ok['hijos']."'");
  75.            
  76.             }
  77.             }
  78.            
  79.             $total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM prueba WHERE sexo='".$_POST['gender']."'  AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."'"),0);
  80.             $total_pages = ceil($result / $max_results);
  81.            
  82.             if($page > 1){
  83.             $prev = ($page - 1);
  84.             echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$prev&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">Previous</a>";
  85.             }
  86.            
  87.             for($i = 1; $i <= $total_pages; $i++){
  88.             if(($page) == $i){
  89.             echo "$i ";
  90.             } else {
  91.             echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$i&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">$i</a> ";
  92.             }
  93.             }
  94.            
  95.             if($page < $total_pages){
  96.             $next = ($page + 1);
  97.             echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$next&&firstname=".$_POST['firstname']."&&sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."\" class=\"title_text\">Next</a>";
  98.             }
  99.             echo "</center>";
  100.            
  101.  
  102.  
  103.  
  104.  
  105. ?>

Etiquetas: Ninguno
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:49.