Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Programacion de Buscador

Estas en el tema de Programacion de Buscador en el foro de PHP en Foros del Web. Hola tengo un problema con la programacion de un buscador, quiero que me muestre los resultados dependiendo de la información que se mande por alguno ...
  #1 (permalink)  
Antiguo 17/09/2013, 14:21
 
Fecha de Ingreso: septiembre-2013
Mensajes: 2
Antigüedad: 10 años, 7 meses
Puntos: 0
Programacion de Buscador

Hola tengo un problema con la programacion de un buscador, quiero que me muestre los resultados dependiendo de la información que se mande por alguno de los 2 campos que tengo en el formulario.
EL problema que tengo es que no encuentro la forma de que me mande los resultados cuando ingreso el dato en el campo para diametro, alguien me puede recomendar una solución? sañudos.

FORMULARIO

Código PHP:
<form method="GET" action="resultado_busqueda_dim3.php">
    <
table width="237" border="0">
      <
tr>
        <
td colspan="2" align="center"><strong>BUSCAR POR DIMENSIONES</strong></td>
      </
tr>
      <
tr>
        <
td width="97" align="center">Ø Nóminal</td>
        <
td width="130" align="center">Longitud</td>
      </
tr>
      <
tr>
        <
td align="center"><input type="text" id="diam" name="diam" size="10" /></td>
        <
td align="center"><input type="text" name="long" id="long" size="10" /></td>
      </
tr>
      <
tr>
        <
td align="center"><input type="submit" value="enviar" /></td>
        <
td align="center"><input type="reset" /></td>
      </
tr>
    </
table>
  </
form

RESULTADO DE BUSQUEDA
Código PHP:
$long=$_REQUEST['long'];
    
$diam=$_REQUEST['diam'];
    
    
        
    
$resultados mysql_query("(SELECT id FROM poste_guia_portatroquel
    WHERE Long_Total like '%$long%' and Diam_Poste like '%$diam%') "
);
    
$total_registros mysql_num_rows($resultados);
    
    
    if (
$long!="")
    
    {
     
    
$resultados mysql_query("(SELECT *  FROM poste_guia_portatroquel WHERE Long_Total like '%$long%' and Diam_Poste like '%$diam%')
ORDER BY id Asc LIMIT $inicio, $registros"
);    
    
$total_paginas ceil($total_registros $registros);                               

    if(
$total_registros) {
    
        while(
$articulo=mysql_fetch_array($resultados)) {
    
                        
                        
    echo 
"<table width='518' border='0'>";
echo 
"    <tr>
      <td width='127' rowspan='13' valign='top'><img src='imagenes/poste portatroquel.jpg' alt='' width='117' height='321' /></td>
      <td align='right'>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td align='right'>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td align='right' width='190'>&nbsp;</td>
      <td width='187'>&nbsp;</td>
    </tr>
    <tr>
      <td align='right'><strong>(D1)-Diámetro Nóminal:</strong></td>
      <td>"
.$articulo['Diam_Poste']."</td>
    </tr>
    <tr>
      <td align='right'><strong>(L)-Lóngitud Total:</strong></td>
      <td>"
.$articulo['Long_Total']."</td>
    </tr>
    <tr>
      <td align='right'><strong>(D2)-Diámetro de Ajuste:</strong></td>
      <td>"
.$articulo['Diam_Ajuste']."</td>
    </tr>
    <tr>
      <td align='right'><strong>(L2)-Lóngitud de Ajuste:</strong></td>
      <td>"
.$articulo['Long_Ajuste']."</td>
    </tr>
    <tr>
      <td align='right'><strong>Tiempo de Entrega:</strong></td>
      <td>"
.$articulo['Tiempo_Entrega']."</td>
    </tr>
    <tr>
      <td align='right'><strong>Piezas en Existencias:</strong></td>
      <td>"
.$articulo['Pzs_Existencia']."</td>
    </tr>
    <tr>
      <td align='right'><strong>Costo:</strong></td>
      <td>$ "
.$articulo['Precio_Henksa']."</td>
    </tr>
    <tr>
      <td align='right'><strong>Clave de Catalogo:</strong></td>
      <td>"
.$articulo['No_Catalogo']."</td>
    </tr>
    <tr>
      <td align='right'><strong>Proveedor:</strong></td>
      <td>"
.$articulo['proveedor']."</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>"
;
      }    
        }
        
        
    } else {
        echo 
"<font color='darkgray'>(sin resultados)</font>";
    }
    

    
mysql_free_result($resultados);                
    
    if(
$total_registros) {
        
        echo 
"<tr><td colspan='3'><center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='resultado_busqueda_dim3.php?long=".$long."&pagina=".($pagina-1)."'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i
                echo 
"<b>".$pagina."</b> "
            else
                echo 
"<a href='resultado_busqueda_dim3.php?long=".$long."&pagina=$i'>$i</a> "
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='resultado_busqueda_dim3.php?long=".$long."&pagina=".($pagina+1)."'>Siguiente ></a>";
        }
        
        echo 
"</center > </td></tr>";
   echo 
"</tr>
    <tr>
    <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan='3'>Los postes guía para portatroquel son fabricados con las más altas normas de calidad y   supervisados en su fabricación, los postes se fabrican en acero endurecido y rectificado  con   tratamientos y niveles de dureza resistentes a la fricción y al desgaste. <br />
        <br />
Los Postes Guía son Fabricados con material 8620 templado y cementado con una profundidad de   1 mm 58-62 HRC. <br />
<br />
 </td>
    </tr>
    <tr>
    <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td colspan='2' align='right'><form method='post' action='../index.php'>
              <input type='submit' value='REGRESAR' />
            </form></td>
    </tr>"
;

echo 
"</table>";
                    
    } 
  #2 (permalink)  
Antiguo 17/09/2013, 14:54
Avatar de andinog  
Fecha de Ingreso: febrero-2012
Mensajes: 50
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Programacion de Buscador

Hola, yo probaría reemplazando esta linea

Código PHP:
Ver original
  1. if ($long!="")

por

Código PHP:
Ver original
  1. if (!empty($long) || !empty($diam))

Saludos
__________________
"El que nada duda nada sabe"
Ser Programador
  #3 (permalink)  
Antiguo 17/09/2013, 15:51
 
Fecha de Ingreso: septiembre-2013
Mensajes: 2
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Programacion de Buscador

Perfecto muchas gracias ya funciono este paso.
Ahora me manda un error en la paginación el error que me da es porque no esta definida una de las variables en el caso de la consulta por Longitud y en el caso de la consulta por diametro el paginador no me funciona, esto es por la variable que tengo en el paginador, ¿¿alguna sugerencia ??

VARIABLE INDEFINIDA EN CONSULTA DE CAMPO "LONGITUD"
Código PHP:
NoticeUndefined indexdiam in C:xampp--------------on line 68 

PAGINADOR PROBLEMA CON PAGINACION EN CONSULTA "DIAMETRO"
Código PHP:
echo "<tr><td colspan='3'><center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='resultado_busqueda_dim3.php?long=".$long."&pagina=".($pagina-1)."'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i
                echo 
"<b>".$pagina."</b> "
            else
                echo 
"<a href='resultado_busqueda_dim3.php?long=".$long."&pagina=$i'>$i</a> "
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='resultado_busqueda_dim3.php?long=".$long."&pagina=".($pagina+1)."'>Siguiente ></a>";
        } 
  #4 (permalink)  
Antiguo 18/09/2013, 06:08
Avatar de andinog  
Fecha de Ingreso: febrero-2012
Mensajes: 50
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Programacion de Buscador

El problema es que la paginacion solo esta pasando mediante GET el parametro long,
y te falta el otro parametro, el diam,

ya que en la otra pagina, tenes en las primeras lineas

Código PHP:
Ver original
  1. $diam=$_REQUEST['diam'];

Saludos
__________________
"El que nada duda nada sabe"
Ser Programador

Etiquetas: buscador, formulario, mysql, programacion, registro, select, sql
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 23:20.