Foros del Web » Programando para Internet » PHP »

Problemas al realizar busqueda

Estas en el tema de Problemas al realizar busqueda en el foro de PHP en Foros del Web. Hola..... Buenas tardes: Tengo un módulo en PHP que realiza busquedas en mi tabla de MySQL. Pretendo que busque en el folio de la cotizacion ...
  #1 (permalink)  
Antiguo 17/12/2012, 13:24
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 7 meses
Puntos: 0
Problemas al realizar busqueda

Hola..... Buenas tardes:

Tengo un módulo en PHP que realiza busquedas en mi tabla de MySQL. Pretendo que busque en el folio de la cotizacion (Valor armado con fecha de creacion e id del registro en hexadecimal algo así: 12/2012/5DA, el nombre del Trabajo, el Cliente, y el Vendedor. El problema que tengo es que mi consulta no se ejecuta correctamente.... Hay ocasiones en que el registro llega vacio y otras en las que llega OK, No puedo buscar nada por folio ya que no me reconoce nada y no aparece ni un registro cuando ingreso criterio de folio. Alguien podría indicarme que ocurre??? Donde esta mi error? Gracias y saludos cordiales


Código:
        function Search($per_page, $segment, $searching){
            if ($segment<=0) $segment=1;
            $folio = hexdec(substr($searching, 8, strlen($searching) - 8));
            $strQuery = "SELECT Concat(substring(cast(tbcotizacionencabezado.datcreado as char),6,2),'/', substring(cast(tbcotizacionencabezado.datcreado as char),1,4),'/', HEX(tbcotizacionencabezado.id ) ) as Cotizacion,
                                tbcotizacionencabezado.id AS Id,
                                tbcotizacionencabezado.strtrabajo as Trabajo, 
                                tbclientes.strRazonSocial as Cliente, 
                                CONCAT(tbpersonal.strnombre,' ', tbpersonal.strappaterno, ' ', tbpersonal.strapmaterno ) as Vendedor, 
                                DATE_ADD(tbcotizacionencabezado.datAutorizado, INTERVAL if(tbcotizacionencabezado.bolOCabierta=1,tbmaquinapredet.intvigenciaoca,tbmaquinapredet.intVigenciaOC) DAY) AS Expira
                                        from tbcotizacionencabezado join tbmaquinapredet 
                                        inner join tbclientes on tbcotizacionencabezado.idcliente = tbclientes.id  
                                        inner join tbpersonal on tbpersonal.id = tbcotizacionencabezado.idcreado  
                                                WHERE (tbcotizacionencabezado.idStatus = 3 AND 
                                                      (NOW() <= DATE_ADD(tbcotizacionencabezado.datAutorizado, INTERVAL if(tbcotizacionencabezado.bolOCabierta=1,tbmaquinapredet.intvigenciaoca,tbmaquinapredet.intVigenciaOC) DAY)) AND
                                                      ((tbcotizacionencabezado.id = ".$folio.") OR (tbcotizacionencabezado.strTrabajo like '%".$searching."%') OR
                                                        tbclientes.strRazonSocial like '%".$searching."%' OR CONCAT(tbpersonal.strnombre,' ', tbpersonal.strappaterno, ' ', tbpersonal.strapmaterno ) like '%".$searching."%'))
                                                        GROUP BY tbcotizacionencabezado.id DESC LIMIT ".$segment.",".$per_page;
            $query = $this->db->query($strQuery);
            if($query->num_rows()>0){
                foreach($query->result() as $row){
                    $data[] = $row;
                }
                return $data;
            }
        }
  #2 (permalink)  
Antiguo 17/12/2012, 18:41
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: Problemas al realizar busqueda

Código PHP:
Ver original
  1. if ($segment<=0) $segment=1;
  2. /* ... */
  3. $strQuery = "...
  4.    GROUP BY tbcotizacionencabezado.id DESC LIMIT ".$segment.",".$per_page;

En MySQL el primer elemento en los resultados está en la posición cero, por lo que si $segment es 1 estás indicando que va a iniciar desde el segundo registro y, cuando buscas por folio, sólo obtienes un registro, pero "lo brincas" desde el LIMIT y por eso no obtienes resultados.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: mysql, tabla, busquedas
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 05:58.