Foros del Web » Programando para Internet » PHP »

Problemas al buscar un valor en un buscador PHP y MySQL

Estas en el tema de Problemas al buscar un valor en un buscador PHP y MySQL en el foro de PHP en Foros del Web. Tengo un problema, hice un buscador en PHP y MySQL para que la gente al buscar una palabra o un código, pueda buscar productos. El ...
  #1 (permalink)  
Antiguo 30/07/2012, 11:30
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Problemas al buscar un valor en un buscador PHP y MySQL

Tengo un problema, hice un buscador en PHP y MySQL para que la gente al buscar una palabra o un código, pueda buscar productos. El problema viene cuando el usuario busca un producto con el que solo hay una coincidencia, no despliega absolutamente nada, pero cuando hay dos o más coincidencias si las despliega. Este es el código que estoy usando (el cual también contiene paginación).

Código PHP:
<?php include ('connect.php'); ?>
            <?php
            
                
if ($_POST['buscar'])
                {
                
// Tomamos el valor ingresado
                
$buscar $_POST['buscar'];
                echo 
$buscar;
                if(empty(
$buscar)) {
                    echo 
"Por favor ingrese una búsqueda";
                }else{
            
            
//Páginas
            
            
$TAMANO_PAGINA 500
            if (!
$_GET) {
                
$pagina 1;
                
$inicio 0;
            } else {
            
$pagina $_GET["pagina"];
               
$inicio = ($pagina 1) * $TAMANO_PAGINA;
            } 
            
            
//Obtener número de páginas
            
mysql_select_db("macobaco_macoba",$conectar);
            
mysql_query("SET NAMES 'utf8'");
            
$ssql="SELECT * FROM hoja1 WHERE Modelo LIKE '%$buscar%' or Concepto LIKE '%$buscar%'";
            
$rsmysql_query($ssql,$conectar);
            
$num_total_registros mysql_num_rows($rs);
            
$total_paginas ceil($num_total_registros $TAMANO_PAGINA);
            
            
//Base de datos
                    
$ssql2="SELECT * FROM hoja1 WHERE Modelo LIKE '%$buscar%' or Concepto LIKE '%$buscar%' LIMIT $inicio, $TAMANO_PAGINA";
                    
$resultado mysql_query($ssql2) or die(mysql_error());
                    
                    if (
$columna mysql_fetch_array($resultado)) {
                        while(
$columna mysql_fetch_array($resultado))
                            {
                                echo 
"<tr>";
                    echo 
"<td valign=\"top\" width=\"52%\">"$columna['Modelo'] ."</td>";
                    echo 
"<td valign=\"top\" width=\"52%\">"$columna['Concepto'] ."</td>";
                                echo 
"</tr>";
                                
                        }

                    }else{
                        echo 
"No se encontró ningún resultado";
                    }
                
mysql_close($conectar); 
                }
            }
            
            
            
//Numerar Páginas
       
?>
               </table>
               </div>
       <div class="products-top">
       <?php
            
            
//Numerar Páginas
            
if ($total_paginas 1){
                for (
$i=1;$i<=$total_paginas;$i++){
                   if (
$pagina == $i)
                      
//si muestro el índice de la página actual, no coloco enlace
                      
echo $pagina " ";
                   else
                      
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
                      
echo "<a href='busqueda.php?pagina=" $i "'>" $i ", </a> ";
                }
            }
        
?>
Para explicarme bien. Imagínen que tengo estos dos productos: 4543GS y 3234GS.

Si hago una búsqueda con GS me despliega los dos productos, pero si busco uno exacto como "3234GS" no me despliega nada. Me sale en blanco y no me tira ningún error ni nada.

Espero me puedan ayudar
  #2 (permalink)  
Antiguo 30/07/2012, 12:18
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problemas al buscar un valor en un buscador PHP y MySQL

Yo creo que el problema es que lees doble el resultado de la consulta,

if ($columna = mysql_fetch_array($resultado)) { sobraría completamente.
  #3 (permalink)  
Antiguo 30/07/2012, 12:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Problemas al buscar un valor en un buscador PHP y MySQL

Listo, si era ese el problema

Gracias

Etiquetas: mysql, registro, sql, buscadores, usuarios
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 06:33.