PHP - Problema con motor de búsqueda en php

   
Vista:

Problema con motor de búsqueda en php

Publicado por 3r!k (8 intervenciones) el 20/08/2012 05:51:35
Hola!, nuevamente consultado, verán, hizé una página donde hizé un switch de un valor donde dependiendo la opción seleccionada sea el tipo de búsqueda, son 4 tipos, al hacer el switch el primer tipo de búsqueda que es por fecha, no tengo problemas, el problema es cuando se pasa al case 2, que es de búsqueda por otro parámetro, ahí cuando le doy buscar y pongo algo en el cuadro de búsqueda no me lanza nada, en cambio si le doy buscar sin ponerle nada si me lanza todos los resultados, utilize un query con LIKE, aqí parte del código...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
$idview=$_POST['text1'];
 $_POST['busqueda'];
 
switch ($idview){
 
case 1:
include ('config.inc');
@mysql_select_db($dbname) or die( "Unable to select database");
$query="SELECT `laboratorios`.`id`,
	DATE_FORMAT(`laboratorios`.`fecha`, '%M %D, %Y') AS `fecha`,
	CONCAT(`hora_entrada`,\":00 - \",`hora_salida`,\":00\") AS `periodo`,
	CONCAT(`docentes`.`nombre`,\" \",`docentes`.`apellido`) AS `docente`,
	CONCAT(`responsables`.`nombre`,\" \",`responsables`.`apellido`) AS `responsable`,
	`especialidades`.`nombre` AS `especialidad`,
	`materias`.`nombre` AS `materia`,
	`numero_alumnos` FROM `laboratorios`
	JOIN  `docentes` ON  `docentes`.`id` =  `laboratorios`.`docente` 
	JOIN  `responsables` ON  `responsables`.`id` =  `laboratorios`.`responsable` 
	JOIN  `materias` ON  `materias`.`id` =  `laboratorios`.`materia` 
	JOIN  `especialidades` ON  `especialidades`.`id` =  `laboratorios`.`especialidad`
    WHERE `fecha` LIKE '%$_POST[busqueda]%'";
    $result=mysql_query($query);
    $num=mysql_num_rows($result);
?>
<table border="0px" cellspacing="0" cellpadding="4px">
    <tr>
    <th class="tdnormal2">Fecha #</th>
    <th class="tdnormal2">Docente</th>
    <th class="tdnormal2">Responsable</th>
    <th class="tdnormal2">Especialidad</th>
    <th class="tdnormal2">Materia</th>
    </tr>
 
    <?php
    $i=0;
    while ($i < $num) {
 
    $f1=mysql_result($result,$i,"fecha");
    $f2=mysql_result($result,$i,"docente");
    $f3=mysql_result($result,$i,"responsable");
    $f4=mysql_result($result,$i,"especialidad");
    $f5=mysql_result($result,$i,"materia");
    ?>
<tr>
    <td class="tdnormal2"><a class="rfqlink" href="viewrequest.php?ID=<?php echo $f1; ?>&St=<?php //echo $f8; ?>"><?php echo $f1; ?></a></td>
    <td align="center" class="tdnormal2"><?php echo $f2; ?></td>
    <td align="center" class="tdnormal2"><?php echo $f3; ?></td>
    <td align="center" class="tdnormal2"><?php echo $f4; ?></td>
    <td align="center" class="tdnormal2"><?php echo $f5; ?></td>
</tr>
<?php
    $i++;
    }
?>
</table>
<?php
    break;
    case 2:
    include ('config.inc');
    @mysql_select_db($dbname) or die( "Unable to select database");
    $query="SELECT `laboratorios`.`id`,
	DATE_FORMAT(`laboratorios`.`fecha`, '%M %D, %Y') AS `fecha`,
	CONCAT(`hora_entrada`,\":00 - \",`hora_salida`,\":00\") AS `periodo`,
	CONCAT(`docentes`.`nombre`,\" \",`docentes`.`apellido`) AS `docente`,
	CONCAT(`responsables`.`nombre`,\" \",`responsables`.`apellido`) AS `responsable`,
	`especialidades`.`nombre` AS `especialidad`,
	`materias`.`nombre` AS `materia`,
	`numero_alumnos` FROM `laboratorios`
	JOIN  `docentes` ON  `docentes`.`id` =  `laboratorios`.`docente` 
	JOIN  `responsables` ON  `responsables`.`id` =  `laboratorios`.`responsable` 
	JOIN  `materias` ON  `materias`.`id` =  `laboratorios`.`materia` 
	JOIN  `especialidades` ON  `especialidades`.`id` =  `laboratorios`.`especialidad`
    WHERE `responsable` LIKE '%$_POST[busqueda]%'";
    $result=mysql_query($query);
    $num=mysql_num_rows($result);
    ?>
    <table border="0px" cellspacing="0" cellpadding="4px">
    <tr>
    <th class="tdnormal2">Fecha </th>
    <th class="tdnormal2">Docente</th>
    <th class="tdnormal2">Responsable</th>
    <th class="tdnormal2">Especialidad</th>
    <th class="tdnormal2">Materia</th>
    </tr>
    <?php
    $i=0;
    while ($i < $num) {
 
    $f1=mysql_result($result,$i,"fecha");
    $f2=mysql_result($result,$i,"docente");
    $f3=mysql_result($result,$i,"responsable");
    $f4=mysql_result($result,$i,"especialidad");
    $f5=mysql_result($result,$i,"materia");
    ?>
<tr>
    <td class="tdnormal2"><a class="rfqlink" href="viewrequest.php?ID=<?php echo $f1; ?>&St=<?php //echo $f8; ?>"><?php echo $f1; ?></a></td>
    <td align="center" class="tdnormal2"><?php echo $f2; ?></td>
    <td align="center" class="tdnormal2"><?php echo $f3; ?></td>
    <td align="center" class="tdnormal2"><?php echo $f4; ?></td>
    <td align="center" class="tdnormal2"><?php echo $f5; ?></td>
</tr>
<?php
$i++;
}
?>
</table>
<?php
break; default;
echo "error";
?>
<?php
}
?>


No sé si me puedan ayudar, ya verifiqué que el valor del campo de búsqueda sea correcto y coinsida con los valores de las tablas y sí coinsiden, me gustaría me puedíeran orientar.....

saludos....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Problema con motor de búsqueda en php

Publicado por xve (5513 intervenciones) el 20/08/2012 08:57:24
Hola, si haces un
1
echo $query;

y lo ejecutas directamente en mysql, ya sea mediante consola o phpmyadmin, te da algún error?

Es muy difícil de ayudarte, ya que no sabemos la estructura de tus tablas, pero yo indicaría en el where la tabla que contiene el campo 'responsable' algo así:
1
2
...
WHERE `Tabla`.`responsable` LIKE '%".$_POST["busqueda"]."%'";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con motor de búsqueda en php

Publicado por 3rick (8 intervenciones) el 21/08/2012 06:59:14
con este codigo quedó resuelto jajajaj, muchas gracias, me diste la idea (:

WHERE `responsables`.`nombre` LIKE '%$_POST[busqueda]%' OR `responsables`.`apellido` LIKE '%$_POST[busqueda]%'";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar