Título: Haciendo un buscador
Publicado por: den_22 en 3 Abril 2010, 04:59 am
Hola que tal, estoy tratando de hacer un buscador tengo este archivo search.php, que la parte del php es algo asi: <? include("function.php"); include("connect.php"); include("getdata.php"); $query = mysql_query("select * from prueba where usuario='$usuario'"); $firstname = $getname["firstname"]; $lastname =$getname["lastname"]; $gender= $getname["sexo"]; $estadocivil=$getname["estadocivil"]; $pais=$getname["pais"]; ?>
y la parte del html asi <table width="470" height="254" border="1"> <form action="search_results.php" method="post"> <tr> <td width="189">Nombre:</td> <td width="265"><?php echo $firstname;?><input type="text" name="firstname" class="main_text_normal" style="width: 100%;"></td> </tr> <tr> <td>Apellido:</td> <td><?php echo $lastname;?><input type="text" name="lastname" class="main_text_normal" style="width: 100%;"></td> </tr> <tr> <td>Pais:</td> <td><select size=1 NAME='pais'> <option <?php if ($user_ok[pais]=="Argentina") echo "selected"; ?>>Argentina</option> <option <?php if ($user_ok[pais]=="Bolivia") echo "selected"; ?>>Bolivia</option> <option <?php if ($user_ok[pais]=="Chile") echo "selected"; ?>>Chile</option> <option <?php if ($user_ok[pais]=="Costa Rica") echo "selected"; ?>>Costa Rica</option> <option <?php if ($user_ok[pais]=="Cuba") echo "selected"; ?>>Cuba</option> <option <?php if ($user_ok[pais]=="Ecuador") echo "selected"; ?>>Ecuador</option> <option <?php if ($user_ok[pais]=="El Salvador") echo "selected"; ?>>El Salvador</option> <option <?php if ($user_ok[pais]=="Espana") echo "selected"; ?>>Espana</option> <option <?php if ($user_ok[pais]=="Guatemala") echo "selected"; ?>>Guatemala</option> <option <?php if ($user_ok[pais]=="Guinea Ecuatorial") echo "selected"; ?>>Guinea Ecuatorial</option> <option <?php if ($user_ok[pais]=="Honduras") echo "selected"; ?>>Honduras</option> <option <?php if ($user_ok[pais]=="México") echo "selected"; ?>>México</option> <option <?php if ($user_ok[pais]=="Nicaragua") echo "selected"; ?>>Nicaragua</option> <option <?php if ($user_ok[pais]=="Panamá") echo "selected"; ?>>Panamá</option> <option <?php if ($user_ok[pais]=="Paraguay") echo "selected"; ?>>Paraguay</option> <option <?php if ($user_ok[pais]=="Perú") echo "selected"; ?>>Perú</option> <option <?php if ($user_ok[pais]=="Puerto Rico") echo "selected"; ?>>Puerto Rico</option> <option <?php if ($user_ok[pais]=="República Dominicana") echo "selected"; ?>>República Dominicana</option> <option <?php if ($user_ok[pais]=="Uruguay") echo "selected"; ?>>Uruguay</option> <option <?php if ($user_ok[pais]=="Venezuela") echo "selected"; ?>>Venezuela</option> </select> </td> </tr> <tr> <td>Estado Civil: </td> <td><select size=1 NAME='estadocivil'> <option></option> <option <?php if ($user_ok[estadocivil]=="Soltero/a") echo "selected"; ?>>Soltero/a</option> <option <?php if ($user_ok[estadocivil]=="Divorciado/a") echo "selected"; ?>>Divorciado/a</option> </select></td> </tr> <tr> <td>Genero:</td> <td><select size=1 NAME='sexo'> <option></option> <option <?php if ($user_ok[sexo]=="Masculino") echo "selected"; ?>>Masculino</option> <option <?php if ($user_ok[sexo]=="Femenino") echo "selected"; ?>>Femenino</option> </select></td> </tr> </form>
ahora bien, al hacer click en buscar, llama al archivo search_results.php que es el siguiente: <? include('connect.php'); $usuario = $_SESSION['usuario']; $firstname=$_POST['firstname']; $lastname=$_POST['lastname']; $estadocivil=$_POST['estadocivil']; $gender=$_POST['sexo']; $pais=$_POST['pais']; $query= mysql_query("select * from prueba where firstname='".$firstname."' AND lastname='".$lastname."'AND sexo='".$gender."' AND estadocivil='".$estadocivil."' AND pais='".$pais."'"); ?>
en el html de este archivo hago un <?php echo $firstname;?>, por ejemplo. Mi pregunta es, en qué estoy fallando porque no me busca ningun usuario. Está bien como lo estoy haciendo? De antemano gracias, solo busco algo de orientacion.
Título: Re: Haciendo un buscador
Publicado por: Shell Root en 3 Abril 2010, 05:06 am
Emmm, dentro del archivo search.php, se supone que donde esta seteada la variable $usuario.
PD: This application has iSQL and XSS. :silbar:
Título: Re: Haciendo un buscador
Publicado por: ~ Yoya ~ en 3 Abril 2010, 05:07 am
Hay algunos temas sobre crear un buscador en el foro, usa el buscador del foro.
Título: Re: Haciendo un buscador
Publicado por: den_22 en 3 Abril 2010, 05:10 am
Si, me olvidé de declarar la variable, pero igual no funciona. Gracias por responder
Título: Re: Haciendo un buscador
Publicado por: Shell Root en 3 Abril 2010, 05:15 am
Bueno, no me referia a la declaración de la variable, sino del SETEO, es decir, en donde le dás valor a esa variable. Supongo que desde allì parte la consulta!
Título: Re: Haciendo un buscador
Publicado por: den_22 en 3 Abril 2010, 05:26 am
Algo asi?
if(!isset($usuario)){ echo 'No se ha seleccionado ningun usuario.'; }else{
Por que razon no se llegan a mostrar los resultados de los usuarios de la bd, cuando hago el select * from existe algo mal?, porque los datos los paso por post.
Título: Re: Haciendo un buscador
Publicado por: Shell Root en 3 Abril 2010, 05:30 am
Supongo que deberia ser $usuario = $_SESSION['usuario'];
Deberias de usar la tecnica del miron... :P, mostrar el query en un echo, para ver que valores estas pasando y cuales no, además de ejecutarlo en el MySQL, a ver si trae resultados.
Título: Re: Haciendo un buscador
Publicado por: ~ Yoya ~ en 3 Abril 2010, 05:32 am
usa la sentencia while y trata de no usar variables, si no datos fijos y hay sabrás si podría ser que las variables no tenga algún contenido.
Título: Re: Haciendo un buscador
Publicado por: den_22 en 3 Abril 2010, 05:39 am
Bueno eso fue lo que hice, pero nada... Tal vez estoy haciendo algo mal en el show_results.php y por eso no se muestran los datos de otros usuarios.
Título: Re: Haciendo un buscador
Publicado por: ~ Yoya ~ en 3 Abril 2010, 05:40 am
y usaste la sentencia while?
Título: Re: Haciendo un buscador
Publicado por: SeC en 3 Abril 2010, 05:55 am
En el search.php no concatenas en la formulacion de la consulta: $query = mysql_query("select * from prueba where usuario='$usuario'");
debiese ser asi: $query = mysql_query("select * from prueba where usuario='".$usuario."'");
Título: Re: Haciendo un buscador
Publicado por: Shell Root en 3 Abril 2010, 05:57 am
SeC, hasta donde tengo entendido dá igual si conctatenas o no, igual se toma como variable, ya que se antepone de un $!
PD: O soy muy idiota o no sé, pero solo veo que ejecutas la sentencia SQL, en donde Fuck, muestras los valores que devolvio la consulta!
Título: Re: Haciendo un buscador
Publicado por: ~ Yoya ~ en 3 Abril 2010, 06:20 am
Usa la sentencia while y trata de ver mas documentación sobre las funciones que utilizas. <?php include("function.php"); include("connect.php"); include("getdata.php"); $query = mysql_query("select * from prueba where usuario='$usuario'"); { $firstname = $getname["firstname"]; $lastname =$getname["lastname"]; $gender= $getname["sexo"]; $estadocivil=$getname["estadocivil"]; $pais=$getname["pais"]; } ?>
Título: Re: Haciendo un buscador
Publicado por: Castg! en 3 Abril 2010, 18:29 pm
mira gabi, no es de forro, pero siempre estas teniendo los mismo problemas en tus codigos, o te flata declarar variables, o errores muy basicos, asi, porq no mejor lees algun buen tutorial de php? porq este tipo de errores son de los primeros capitulos.
Título: Re: Haciendo un buscador
Publicado por: fede_cp en 3 Abril 2010, 19:36 pm
usa un buscador powered by google :xD, na pero hacer un buscador tiene miles de errores si lo haces caseramente, puede haber desde sql i a xss, ese codigo lo hiciste vos?
saludos
Título: Re: Haciendo un buscador
Publicado por: den_22 en 4 Abril 2010, 21:51 pm
Bueno gracias, por haber contestado, Castg!, trataré de buscar algun tutorial, la otra vez, seguí tu consejo y lo pude resolver, al problema que tenia.
fede_cp, bueno buscaré alguno made in google, jaja, veremos...
Gracias.
den_22
Título: Re: Haciendo un buscador
Publicado por: den_22 en 12 Abril 2010, 00:06 am
Hola nuevamente, al final pude hacer un buscador, que puede buscar por palabras, o sea nombre de usuario. El tema es que no me sale el del select. Dejo los codigos, a ver cual es la cuestion de que no busque con el select. el search.php tiene este codigo: <?php include_once ("connect.php"); include_once ("srh.php"); ?>
el del srh.php: <?php //Buscador nombre if (isset($_POST['search_firstname'])){ $query = mysql_query("SELECT firstname FROM prueba WHERE firstname='".$_POST['firstname']."'"); if (empty($_POST['firstname'])){ $search_username_message = "<tr><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"main\"><B>[ Debes ingresar un nombre de usuario ]</B></td></tr>"; } $search_username_message = "<tr><td align=\"center\" bgcolor=\"#FFFFFF\" class=\"main\"><B>[ El usuario no existe ]</B></td></tr>"; } else { $search_username_message = "<script>document.location.href='".$_POST['firstname']."'</script>"; } } //Buscador del select if (isset($_POST['search'])){ $search_message = "<script>document.location.href='search_results.php?sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."'</script>"; } ?>
el form del search.php tiene un action asi members_search_index.php?search=firstname y en el html pongo algo asi <?php echo $user_ok['firstname'];?> para que aparezcan los datos. Ahora, lo que no me sale es el buscador del select aca está el codigo del search_results.php: ?php include_once ("connect.php"); include_once("srh.php"); if(!isset($_POST['page'])){ $page = 1; } else { $page = $_POST['page']; } $max_results = 3; $from = (($page * $max_results) - $max_results); $query = mysql_query("SELECT * FROM prueba WHERE sexo='".$_POST['gender']."' AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."' LIMIT $from, $max_results"); echo "<span class=\"pages\"><center><B>No hay resultados[ <a href=\"search.php\" class=\"pages\">Atras</a> ]</B></center></span>"; } else { $col = 0; echo '<tr>'; if ($user_ok['gender']=='4'){ echo 'Femenino'; } else { echo 'Masculino'; } $col++; if ($col==3){ echo "</tr><tr>"; $col = 0; } } } $query = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM prueba WHERE sexo='".$_POST['gender']."' AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."'"),0); $total_pages = ceil($query / $max_results); if($page > 1){ $prev = ($page - 1); echo "<a href=\"search_results.php?sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."&&page=$prev\"><font color=\"black\"><B>Anterior</B></font></a> "; } for($i = 1; $i <= $total_pages; $i++){ if(($page) == $i){ echo "$i "; } else { echo "<a href=\"search_results.php?sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."&&page=$i\"><font color=\"black\"><B>$i</B></font></a> "; } } if($page < $total_pages){ $next = ($page + 1); echo "<a href=\"search_results.php?sexo=".$_POST['gender']."&&pais=".$_POST['pais']."&&estadocivil=".$_POST['estadocivil']."&&page=$next\"><font color=\"black\"><B>Siguiente</B></font></a>"; } echo "</center>"; ?>
Gracias de antemano. den_22
Título: Re: Haciendo un buscador
Publicado por: den_22 en 13 Abril 2010, 04:44 am
Hola, bueno posteo lo que tengo hasta ahora, no pido que hagan el codigo, solamente que me guien un poquito :-( , gracias. <?php include_once ("connect.php"); $usuario=$_SESSION['usuario']; echo 'No se ha seleccionado ningun usuario.'; }else{ $query=mysql_query("SELECT * FROM prueba WHERE usuario='$_SESSION[usuario]' "); //todo comprobado, ahora solo falta mostrar los datos echo 'Bienvenid@ <b>'.$user_ok['usuario'].'</b><br>'; }else{ echo 'La id de usuario seleccionada no existe'; } } function getsqlrow($query) { return $row; } function getsqlnumber($sqlQuery) { return $result; } if(!isset($_GET['page'])){ $page = 1; } else { $page = $_GET['page']; } $max_results = 10; $from = (($page * $max_results) - $max_results); $query = mysql_query("SELECT * FROM prueba WHERE sexo='".$_POST['gender']."' AND pais='".$_POST['pais']."' AND estadocivil='".$_POST['estadocivil']."' LIMIT $from, $max_results"); } else { $get_result_row = getsqlrow("SELECT * FROM prueba WHERE usuario='".$user_ok['usuario']."'"); $result_ocupacion = getsqlnumber("SELECT * FROM prueba WHERE ocupacion='".$user_ok['ocupacion']."'"); $result_hijos = getsqlnumber("SELECT * FROM prueba WHERE hijos='".$user_ok['hijos']."'"); } } $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); $total_pages = ceil($result / $max_results); if($page > 1){ $prev = ($page - 1); 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>"; } for($i = 1; $i <= $total_pages; $i++){ if(($page) == $i){ echo "$i "; } else { 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> "; } } if($page < $total_pages){ $next = ($page + 1); 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>"; } echo "</center>"; ?>
Título: Re: Haciendo un buscador
Publicado por: Shell Root en 13 Abril 2010, 05:02 am
jejeje Seria más facil si plantearas la duda y/o la linea de codigo en la que tenes problemas.
PD: Intenta filtrar, manejar las variables, yá que creo que se puede realizar un iSQL y XSS...
|