Foros del Web » Programando para Internet » PHP »

Problema consulta de 1 campo

Estas en el tema de Problema consulta de 1 campo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/06/2010, 10:21
 
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.
  #2 (permalink)  
Antiguo 26/06/2010, 10:24
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema consulta de 1 campo

Donde inicializas la variable $tipo_busqueda?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 26/06/2010, 10:39
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Problema consulta de 1 campo

En la página "actas.php" tengo el mismo formulario de búsqueda y lo mando a la página "buscar_actas.php" que es el que realiza la búsqueda.

Además en el mismo "buscar_actas.php" (como puse antes) también está el formulario. No se si es eso a lo que te referís?
  #4 (permalink)  
Antiguo 26/06/2010, 11:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema consulta de 1 campo

A ver... haces esto para $nombre:

Código PHP:
Ver original
  1. if ( isset( $_REQUEST['nombre']) )
  2. {
  3.     // Tomamos el valor ingresado
  4.     $nombre = trim( $_REQUEST['nombre'] );    
  5. }

... pero no lo haces para $tipo_busqueda... entonces var_dump($tipo_busqueda); seguramente devolvera NULL y de ahi el error.

Tambien podrias probar var_dump($_pagi_sql); para ver si estas armando la consulta correctamente.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 26/06/2010, 11:22
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Problema consulta de 1 campo

Probé inicializando las dos varables así:

Código PHP:
if ( isset( $_REQUEST['nombre']) )
{
    
// Tomamos el valor ingresado
    
$nombre trim$_REQUEST['nombre'] );    
}

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

y sigo con el mimo problema. Lo extraño es que pasa sólo con ese campo!

Por favor, como sería el probar con "var_dump($_pagi_sql);"?
  #6 (permalink)  
Antiguo 26/06/2010, 17:24
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Problema consulta de 1 campo

Bueno, he probado con var_dump($_pagi_sql); y la consulta se realiza correctamente!

También he probado con var_dump($tipo_busqueda); y el valor que devuelve es correcto, no es NULL

No logro entender por que sólo ese campo origina el problema y no pasa con ningún otro campo!

Ojalá alguien más pueda orientarme o echarme una mano!

Etiquetas: campos
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 21:21.