Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2010, 10:21
paulkees
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Problema consulta de 1 campo

Hola a todos...!

No se si la consulta corresponde a PHP o MySQL, disculpas a los moderadores por si me he equivocado!

Tengo un problema curioso al cual le he dado todas las vueltas y no le encuentro solución.

Resulta que tengo un buscador (formulario) así:

Código HTML:
<form action="buscar_actas.php" method="get" name="doc-actas">
<input type="text" name="nombre" value="<?php echo (isset($_GET['nombre'])) ? $_GET['nombre'] : ""; ?>"/>&nbsp;
Seleccione criterio:&nbsp;<select name="tipo_busqueda">
<option value="apellido_paterno">Apellido paterno</option>
<option value="apellido_materno">Apellido materno</option>
<option value="nombre">Nombre</option>
<option value="acta_tipo">Tipo Acta</option>
<option value="acta_numero">Nº Acta</option>
<option value="libro_numero">Nº Libro</option>
<option value="anio">Año</option>
</select>
&nbsp;<input type="submit" name="buscador" value="Buscar" class="buscar"/>
</form> 
y hago la consulta de esta forma en el "buscar_actas.php":

Código PHP:
<?php

//Conexión a la base de datos
          
include($_SERVER['DOCUMENT_ROOT']."conectarse.php");
          
conectarse();

if ( isset( 
$_REQUEST['nombre']) )
{
    
// Tomamos el valor ingresado
    
$nombre trim$_REQUEST['nombre'] );    
}

// Si está vacío, lo informamos, si no, realizamos la búsqueda
if(empty($nombre))
{
    echo 
"<div>No se ingresaron datos</div>";
}else{    

    
$_pagi_sql "SELECT
    *
    FROM actas
    WHERE (YEAR(CURRENT_DATE) - YEAR(fecha)) - (RIGHT(CURRENT_DATE,5) < RIGHT(fecha,5)) > '100' AND apellido_paterno > '0'
    AND $tipo_busqueda = '$nombre' 
    OR $tipo_busqueda LIKE '$nombre %' 
    OR $tipo_busqueda LIKE '% $nombre' 
    OR $tipo_busqueda LIKE '% $nombre %' 
    OR $tipo_busqueda LIKE '%($nombre)%'
    OR $tipo_busqueda LIKE '%-$nombre%'
    OR $tipo_busqueda LIKE '%$nombre-%'
    OR $tipo_busqueda LIKE '%$nombre,%'
    ORDER BY apellido_paterno, nombre, apellido_materno ASC"
;
?>
Ahora bien, cuando consulto los campos me muestra correctamente todos los resultados de aquellos que tienen más de 100 años. Curiosamente, y aquí está el problema, cuando hago una consulta con el select "nombre" (correspondiente al campo MySQL nombre) me muestra los resultados incluyendo los que tienen menos de 100 años.

Es decir, todo funciona bien salvo con ese campo!... eso es raro y no le encuentro solución!

Por favor, si alguien me puede ayudar ya que intenté todo lo que está a mi alcance.