Foros del Web » Programando para Internet » PHP »

problema buscador

Estas en el tema de problema buscador en el foro de PHP en Foros del Web. Lectores del foro , tengo un problema con un pequeño buscador implementado en mi web a la hora de agregar el select * from para ...
  #1 (permalink)  
Antiguo 12/09/2011, 07:57
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 10 meses
Puntos: 61
problema buscador

Lectores del foro , tengo un problema con un pequeño buscador implementado en mi web a la hora de agregar el select * from para encontrar las ciudades solo me arroja un resultado de registros expongo el codigo espero puedan echarme una mano :


buscar.php

<head>
<link type="text/css" href="css/ui-lightness/jquery-ui-1.8.16.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.datepicker-es.js"></script>
<script>
$(function() {
$("#calendario").datepicker();
$('#calendario').datepicker('option', {dateFormat: 'yy-mm-dd'});
$('#calendario').datepicker($.extend({}, $.datepicker.regional["es"]));
$("table.cambia-color tr:even").addClass("oddrow");
});


</script>
<style type="text/css">
table {width:90%; border:1px solid blue;}
.oddrow {background-color:#E5E5E5;}
</style>
</head>

<form action="<?php $_SERVER['PHP_SELF'];?>" method="POST">
Buscar: <input name="palabra" id="calendario">
<input type="submit" name="buscador" value="Buscar">
</form>
<br />
<table width="90%">
<tr>
<td width="20%"><strong>Nombre Encuesta</strong></td>
<td width="10%"><strong>Fecha</strong></td>
<td width="10%"><strong>Rut</strong></td>
<td width="20%"><strong>Nombre Evaluador</strong></td>
<td width="10%"><strong>Regi&oacute;n</strong></td>
<td width="10%"><strong>Coordinador</strong></td>
<td width="10%"><strong>E-Mail</strong></td>
</tr>
</table>

Código PHP:
Ver original
  1. <?php
  2. if ($_POST['buscador']){
  3. $buscar = $_POST['palabra'];
  4. // Si está vacío
  5. if(empty($buscar)){
  6.     echo "No se han ingresado datos a Buscar";
  7. }
  8.  
  9. else{
  10.     $con=mysql_connect("localhost","xxx","xxxx");
  11.     $sql = "SELECT * FROM unifica_proyectos WHERE fecha like '%$buscar%' ORDER BY id DESC";
  12.     mysql_select_db("bd_mistery", $con);
  13.  
  14.     $result = mysql_query($sql, $con);
  15.     $total = mysql_num_rows($result);
  16.         if ($row = mysql_fetch_array($result)){
  17.             do {   
  18.                     $nombreencuesta=utf8_encode($row['nombreencuesta']);
  19.                     $fecha=$row['fecha'];  
  20.                     $fecha=date("d-m-Y",strtotime($fecha));
  21.                     $rut=$row['rut'];
  22.                     $nombreevaluador=utf8_encode($row['nombreevaluador']);
  23.                     $idregion=utf8_encode($row['idregion']);
  24.                     $coordinador=utf8_encode($row['coordinador']);
  25.                     $mail=utf8_encode($row['mail']);
  26.  
  27.                 echo "<table class=cambia-color>";
  28.                 echo "<tr>";
  29.                 echo "<td width=20%>$nombreencuesta</td>";
  30.                 echo "<td width=10%>$fecha</td>";
  31.                 echo "<td width=10%>$rut</td>";
  32.                 echo "<td width=20%>$nombreevaluador</td>";
  33.                
  34.     $sql_region = "SELECT * FROM regiones WHERE idregion='".$idregion."'";
  35.     $resultado=mysql_query($sql_region,$link_region)or die(mysql_error());
  36.         while($row = mysql_fetch_array($resultado)) {              
  37.                 echo "<td width=10%>'".$row['region']."'</td>";
  38.     }
  39.                
  40.                 echo "<td width=10%>$coordinador</td>";
  41.                 echo "<td width=10%>$mail</td>";
  42.                 echo "</table>";
  43.                 }
  44.  
  45.     while ($row = mysql_fetch_array($result));
  46.  
  47.         }
  48. else {
  49. echo "No se encontraron resultados para: <b>$buscar</b>";
  50. }
  51. }
  52. }
  53. ?>

saludos y de antemano gracias
  #2 (permalink)  
Antiguo 12/09/2011, 08:03
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 2 meses
Puntos: 297
Respuesta: problema buscador

Desde mi punto de vista, el problema lo tienes en el SQL, revísala porque buscas por fecha, no la cuidad.
  #3 (permalink)  
Antiguo 12/09/2011, 08:14
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 10 meses
Puntos: 61
Respuesta: problema buscador

mi amigo mi buscador funciona con la fecha bien , me refiero al segundo select de la ciudad ya que en la tabla unifica_proyectos tengo solo el idregion y en otra tabla
idregion PK y region ahi esta mi duda , ya que al sacar mi segundo select a la tabla de las regiones me busca bien ?

unifica_proyectos
id PK
nombreencuesta,
fecha,
rut
nombreevaluador,
idregion
coordinador,
mail


regiones
idregion PK
region

Saludos
  #4 (permalink)  
Antiguo 12/09/2011, 08:36
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 2 meses
Puntos: 297
Respuesta: problema buscador

Vaya, no me había fijado el segundo select, la primera ves que vea una búsqueda que saque la fecha por un lado y la información por otro... pero a lo que vamos.

Viendo el código de forma más determinante no hace falta que hagas dos consultas, con sólo usar un Join debería ser suficiente, Te aconsejo mejor el segundo enlace..

http://dev.mysql.com/doc/refman/5.0/es/join.html
http://sql.1keydata.com/es/sql-join.php



PD: ¿Por simple curiosidad, para montar tus tablas has seguido el modelo entidad-relación?
  #5 (permalink)  
Antiguo 12/09/2011, 08:44
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 10 meses
Puntos: 61
Respuesta: problema buscador

Muchas gracias mi amigo efectivamente lo e resuelto como me indicas con el uso de join , si uso modelo entidad relacion expongo el codigo como lo solucione ,

Código PHP:
Ver original
  1. $sql = "SELECT
  2.                 unifica_proyectos.id,
  3.                 unifica_proyectos.nombreencuesta,
  4.                 unifica_proyectos.fecha,
  5.                 unifica_proyectos.rut,
  6.                 unifica_proyectos.nombreevaluador,
  7.                 unifica_proyectos.idregion,
  8.                 unifica_proyectos.coordinador,
  9.                 unifica_proyectos.mail,
  10.                 regiones.region,
  11.                 regiones.idregion
  12.                
  13.             FROM unifica_proyectos
  14.             INNER JOIN regiones ON unifica_proyectos.idregion = regiones.idregion WHERE fecha like '%$buscar%' ORDER BY id DESC";


Saludos y gracias

Etiquetas: mysql, sql, buscadores
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:07.