Foros del Web » Programando para Internet » PHP »

Problema con búsquedas PHP

Estas en el tema de Problema con búsquedas PHP en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 19/08/2012, 21:58
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 9 meses
Puntos: 2
Problema con búsquedas PHP

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...


$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.....

pd: Sé que es mucho código, sólo lo estoy testeando, pero lo optimizaré :p
saludos....
  #2 (permalink)  
Antiguo 20/08/2012, 07:28
 
Fecha de Ingreso: julio-2012
Ubicación: Girona
Mensajes: 63
Antigüedad: 11 años, 8 meses
Puntos: 10
Respuesta: Problema con búsquedas PHP

has probado a filtrar que el campo $_POST[busqueda] no contenga comillas simples ni dobles?
lo que puedes probar, es:
hacer un print de $query y probarlo directamente en tu gestor de bases de datos (mysqladmin / phpmyadmin / etc..) y ver si el select te lanza un error.

Saludos
__________________
Por favor utilizad HIGHLIGHTS en los códigos insertados para que sean más legibles

Etiquetas: mysql, sql, tabla
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 08:51.