Foros del Web » Programando para Internet » PHP »

AYUUUDAA!! Buscador de php

Estas en el tema de AYUUUDAA!! Buscador de php en el foro de PHP en Foros del Web. Hola a todos!!!! Muy buenos dias... les cuento estoy realizando un buscador de mi pagina web con php y mysql, quiero realizar la busqueda en ...
  #1 (permalink)  
Antiguo 10/07/2007, 09:13
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Exclamación AYUUUDAA!! Buscador de php

Hola a todos!!!! Muy buenos dias... les cuento estoy realizando un buscador de mi pagina web con php y mysql, quiero realizar la busqueda en dos tablas distintas y todo los codigos que he conseguido en web son para busquedas de varios campos pero en una misma tabla, esto en primer lugar, luego se me ocurrio que podria realizar dos busquedas (con dos sentencias mysql que me busque en distintas tablas) y realizar algun condicional que me redireccione a una u otra pagina dependiento de en donde encontro respuesta. Pero mi problema ahora es que buscando en una solita tabla me da un error y no me muestra lo que quiero, aqui les va el codigo para que porfaaa me ayuden:
Código PHP:
<?php
include("conec.php");
$link=conectarse();

$campos=array("estado","estacion","longitud","latitud","direccion","generador","cia_electrica","telefono_cia","nro_medidor","nro_cliente","nro_contrato");//campos a mostrar de la tabla region

$numecampo=count($campos);//guarda el numero de campo

$bandera="si";//bandera que indica si se encontro la palabra

for ($i=0;$i<$numecampo;$i++)//realizaremos el recorrido de la busqueda de cada tabla
{
$campoac=$campos[$i];//guardamos el campo actual
$a=$_POST['buscador'];//guardamos la palabra que se buscara
if ($a==false)
{
echo 
"<p>Debe especificar la busqueda</p> \n"
echo 
"</html></body> \n"
exit; 
}

$resultado=mysql_query("select estado, estacion, longitud, latitud, direccion, generador, cia_electrica, telefono_cia, nro_medidor, nro_cliente, nro_contrato from region where $campoac like '%{$_POST['buscador']}%'",$link);

if (
$row=mysql_fetch_array($resultado))//si encontro la palabra
{
    
mysql_field_seek($resultado,0);
    while (
$field mysql_fetch_field($resultado))
    {
    echo 
"<td><b></b></td> \n";
    }
    do{
    echo 
"<table>";
    echo 
"<tr>";
    echo 
"<td width='AUTO'>$row['estado']</td>";//Line 52
    
echo "<td width='AUTO'>$row['estacion']</td>";
    echo 
"<td width='AUTO'>$row['longitud']</td>";
    echo 
"<td width='AUTO'>$row['latitud']</td>";
    echo 
"<td width='AUTO'>$row['direccion']</td>";
    echo 
"<td width='AUTO'>$row['generador']</td>";
    echo 
"<td width='AUTO'>$row['cia_electrica']</td>";
    echo 
"<td width='AUTO'>$row['telefono_cia']</td>";
    echo 
"<td width='AUTO'>$row['nro_medidor']</td>";
    echo 
"<td width='AUTO'>$row['nro_cliente']</td>";
    echo 
"<td width='AUTO'>$row['nro_contrato']</td>";
    echo 
"</tr>";
    echo 
"</table>";
    echo 
"<p> </p> \n";
    echo 
"<hr>"
    
$bandera "no";
    }
}
}
?>
el mensaje de error que muestra es el siguiente:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Apache2\htdocs\buscador.php on line 52
Se supone que me deberia mostrar en una tabla las coincidencias y ni pendiente, como hago???

Última edición por Melania; 11/07/2007 a las 07:40
  #2 (permalink)  
Antiguo 10/07/2007, 09:19
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: AYUUUDAA!! Buscador de php

Hola, prueba esto:
Código PHP:
$resultado=mysql_query("select estado, estacion, longitud, latitud, direccion, generador, cia_electrica, telefono_cia, nro_medidor, nro_cliente, nro_contrato from region where $campoac like '%{".$_POST['buscador']."}%'",$link); 
Saludos
__________________
->Aprender es un proceso que incluye el error..
  #3 (permalink)  
Antiguo 10/07/2007, 09:31
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: AYUUUDAA!! Buscador de php

Gracias Cala!! pero probe y me sale el mismo error!!!! otra ayudita...
  #4 (permalink)  
Antiguo 10/07/2007, 10:01
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: AYUUUDAA!! Buscador de php

Veamos esto
Estructura de las tablas

Tablas"tabla1": Id, campo11, campo12
Tablas “tabla2": Id, campo21, campo22.

supongamos que el campo “campo11” de la tabla1, hace referencia al campo id de la tabla2.

Se necesita realizar una consulta la cual me devuelva todos los blablabla de la tabla1, con su campo 12, campo21 de la tabla2 y tambien porque no campo22 tabla 2.

Aquí es la cosa y veamos entre varios más como arreglar esta problemática, esto lo hice a mente rapida, ha de tener seguro sus problemas.

SELECT tabla1.Id, tabla1.campo12, tabla2.campo21, tabla2.campo22 FROM tabla1, tabla2 WHERE tabla2.Id=tabla1.campo11

reporta problema

pd: modifica tus nombres de campos
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #5 (permalink)  
Antiguo 10/07/2007, 10:08
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: AYUUUDAA!! Buscador de php

Ok muchas gracias escorpion pero como dije, ahorita mi problema es para mostrar la busqueda en una sola tabla, me sale el error que mostre abajo de mi primer mensaje.. despues tocare el tema de la seleccion de las dos tablas, pero por ahora necesito ayuda es en el problemita que me aparece este error y no me muestra lo que quiero...

Ayuditaa
  #6 (permalink)  
Antiguo 10/07/2007, 10:29
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: AYUUUDAA!! Buscador de php

antes de hacer operaciones sobre los datos, es necesario que estes segura que la consulta devuelve un resultado, para esto agrega un or die.. para saber si algo falla en la consulta..

Código PHP:
$resultado=mysql_query("select estado, estacion, longitud, latitud, direccion, generador, cia_electrica, telefono_cia, nro_medidor, nro_cliente, nro_contrato from region where $campoac like '%{$_POST['buscador']}%'",$link) or die (mysql_error()); 
asi podras saber si hay un error en la consulta ;) y por eso no funciona lo de mas abajo.. :)
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #7 (permalink)  
Antiguo 10/07/2007, 12:06
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: AYUUUDAA!! Buscador de php

Ok, gracias _SXX, pero la sintaxis de mysql esta correcta, la probe directo en el Query y me da ok, siempre lo hago antes de hacer la prueba en la pagina, resalto nuevamente que el error que muestra es el siguiente:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Apache2\htdocs\buscador.php on line 53

En el codigo arriba aparece cual es la linea 53, ademas de esto creo que puedo tener error en la sintaxis para mostrar la tabla o con el mysql_field_seek ya que no manejo bien esto.. porfa ayuuda con esto que estoy desperadaaa thanks por adelantado!!
  #8 (permalink)  
Antiguo 10/07/2007, 13:08
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: AYUUUDAA!! Buscador de php

Poruqe no pruebas asi dentro del while en todas tus lineas.

Código PHP:
echo "<td width='AUTO'>".$row['estado']."</td>"
tu lo tienes asi:

Código PHP:
echo "<td width='AUTO'>$row['estado']</td>"
El error te marca porque el interprte no identifica el tipo de dato que es tu variable en este caso $row['dato']

Saludos.
  #9 (permalink)  
Antiguo 10/07/2007, 13:18
 
Fecha de Ingreso: julio-2007
Mensajes: 26
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: AYUUUDAA!! Buscador de php

Por qué no pruebas instalar un buscador completo como el que tengo en mi página. es muy bueno, solo le das la dirección principal y te indexa todo automáticamente, con la opcion de reindexar cuantas veces quieras. Para bajarlo puedes hacerlo desde www.xav.com y si quieres ver como queda puedes visitar mi página en www.mipuertocabello.net, pruébalo y verás que te gusta
  #10 (permalink)  
Antiguo 10/07/2007, 14:18
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: AYUUUDAA!! Buscador de php

Cita:
Iniciado por Carlojas Ver Mensaje
Poruqe no pruebas asi dentro del while en todas tus lineas.

Código PHP:
echo "<td width='AUTO'>".$row['estado']."</td>"
tu lo tienes asi:

Código PHP:
echo "<td width='AUTO'>$row['estado']</td>"
El error te marca porque el interprte no identifica el tipo de dato que es tu variable en este caso $row['dato']

Saludos.
cierto es eso
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #11 (permalink)  
Antiguo 11/07/2007, 06:59
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: AYUUUDAA!! Buscador de php

Gracias a Carlojas y _SSX, ya no me muestra el error!!!!! pero ahora tengo otro problemita con esto, chequen porfa para que me ayuden porfilis si???
Resulta que ahora cuando le doy buscar me entra unicamente en el primer if, mostrandome siempre "Debe especificar la busqueda", y le estoy mandando una palabra... osea pareciar que retornara false en "$a==false", please el codigo esta arriba chequen.. AYUUUDA y gracias por adelantado...
No encuentro el error
  #12 (permalink)  
Antiguo 11/07/2007, 07:58
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 1 mes
Puntos: 36
Re: AYUUUDAA!! Buscador de php

Yo creo que tendrías que ponerle el else al if:
Código PHP:
include("conec.php");
$link=conectarse();

$campos=array("estado","estacion","longitud","latitud","direccion","generador","cia_electrica","telefono_cia","nro_medidor","nro_cliente","nro_contrato");//campos a mostrar de la tabla region

$numecampo=count($campos);//guarda el numero de campo

$bandera="si";//bandera que indica si se encontro la palabra

for ($i=0;$i<$numecampo;$i++)//realizaremos el recorrido de la busqueda de cada tabla
{
$campoac=$campos[$i];//guardamos el campo actual
$a=$_POST['buscador'];//guardamos la palabra que se buscara
if ($a==false)
{
echo 
"<p>Debe especificar la busqueda</p> \n"
echo 
"</html></body> \n"
exit; 
}else{

$resultado=mysql_query("select estado, estacion, longitud, latitud, direccion, generador, cia_electrica, telefono_cia, nro_medidor, nro_cliente, nro_contrato from region where $campoac like '%{$_POST['buscador']}%'",$link);

if (
$row=mysql_fetch_array($resultado))//si encontro la palabra
{
    
mysql_field_seek($resultado,0);
    while (
$field mysql_fetch_field($resultado))
    {
    echo 
"<td><b></b></td> \n";
    }
    do{
    echo 
"<table>";
    echo 
"<tr>";
    echo 
"<td width='AUTO'>$row['estado']</td>";//Line 52
    
echo "<td width='AUTO'>$row['estacion']</td>";
    echo 
"<td width='AUTO'>$row['longitud']</td>";
    echo 
"<td width='AUTO'>$row['latitud']</td>";
    echo 
"<td width='AUTO'>$row['direccion']</td>";
    echo 
"<td width='AUTO'>$row['generador']</td>";
    echo 
"<td width='AUTO'>$row['cia_electrica']</td>";
    echo 
"<td width='AUTO'>$row['telefono_cia']</td>";
    echo 
"<td width='AUTO'>$row['nro_medidor']</td>";
    echo 
"<td width='AUTO'>$row['nro_cliente']</td>";
    echo 
"<td width='AUTO'>$row['nro_contrato']</td>";
    echo 
"</tr>";
    echo 
"</table>";
    echo 
"<p> </p> \n";
    echo 
"<hr>"
    
$bandera "no";
    }
}}

Saludos
  #13 (permalink)  
Antiguo 11/07/2007, 08:03
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: AYUUUDAA!! Buscador de php

Hola melania, porque en vez de decir:

Código PHP:
if ($a == false
Preguntas asi:

Código PHP:
if ($a != "")
{
    
realizas tu proceso
}
else
{
   
mandas el mensaje de especificar busqueda

Saludos y espero haberte podido ayudar.
  #14 (permalink)  
Antiguo 11/07/2007, 09:26
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: AYUUUDAA!! Buscador de php

Gracias Carlojas y Raulmmm cambie el codigo como me dijeron, y sigo teniendo problemas uffff que ahora me sucede lo siguiente cuando dejo el buscador en blanco me aparece y presiono buscar me sale ¡No se ha encontrado ningún registro! que es la condicion del ultimo if, y cuando le coloco una palabra que si existe y deberia arrojar las coincidencias me dice Debe especificar la busqueda que es la condicion del primer if, nunca me muestra la tabla.. y de paso cuando esta en blanco no me muestra lo que deberia mostrar ayuuuuuda
  #15 (permalink)  
Antiguo 11/07/2007, 09:28
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: AYUUUDAA!! Buscador de php

Aqui les coloco otra vez el codigo con las correciones, se me olvido hacerlo arriba.. ayudaa (leer mensaje de arriba)
Código PHP:
<?php
include("conec.php");
$link=conectarse();

$campos=array("estado","estacion","longitud","latitud","direccion","generador","cia_electrica","telefono_cia","nro_medidor","nro_cliente","nro_contrato");//campos a mostrar de la tabla region

$numecampo=count($campos);//guarda el numero de campo

$bandera="no";//bandera que indica si no se encontro la palabra

for ($i=0;$i<$numecampo;$i++)//realizaremos el recorrido de la busqueda de cada tabla
{
$campoac=$campos[$i];//guardamos el campo actual
$a=$_POST['buscador'];//guardamos la palabra que se buscara

if ($a !="")
{
echo 
"<p>Debe especificar la busqueda</p> \n"
echo 
"</html></body> \n"
exit; 
}
else
{
$resultado=mysql_query("select estado, estacion, longitud, latitud, direccion, generador, cia_electrica, telefono_cia, nro_medidor, nro_cliente, nro_contrato from region where $campoac like '%{".$_POST['buscador']."}%'",$link);  

if (
$row=mysql_fetch_array($resultado))//si encontro la palabra
{
    
mysql_field_seek($resultado,0);
    while (
$field mysql_fetch_field($resultado))
    {
    echo 
"<td><b></b></td> \n";
    }
    do{
    echo 
"<table>";
    echo 
"<tr>";
    echo 
"<td width='AUTO'>".$row['estado']."</td>";//Line 52
    
echo "<td width='AUTO'>".$row['estacion']."</td>";
    echo 
"<td width='AUTO'>".$row['longitud']."</td>";
    echo 
"<td width='AUTO'>".$row['latitud']."</td>";
    echo 
"<td width='AUTO'>".$row['direccion']."</td>";
    echo 
"<td width='AUTO'>".$row['generador']."</td>";
    echo 
"<td width='AUTO'>".$row['cia_electrica']."</td>";
    echo 
"<td width='AUTO'>".$row['telefono_cia']."</td>";
    echo 
"<td width='AUTO'>".$row['nro_medidor']."</td>";
    echo 
"<td width='AUTO'>".$row['nro_cliente']."</td>";
    echo 
"<td width='AUTO'>".$row['nro_contrato']."</td>";
    echo 
"</tr>";
    echo 
"</table>";
    echo 
"<p> </p> \n";
    echo 
"<hr>"
    
$bandera "si";
    }
while (
$row=mysql_fetch_array($resultado));
echo 
"</table> \n";
}
//fin del if
}//fin del else
}//fin del for
if ($bandera == "no"//si la bandera sigue en no es que no encontro la palabra y avisamos 
{ echo "<p>¡No se ha encontrado ningún registro!</p>\n"

?>
  #16 (permalink)  
Antiguo 11/07/2007, 09:36
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: AYUUUDAA!! Buscador de php

Hola melania mira:

Código PHP:
if ($a != ""
{
   
entras a hacer tus consultas y demas acciones 

Esto indica que se ha determinado un patron de busqueda entonces se buscara el contenido que tenga que ver con tu criterio de busqueda el cual esta almacenado en la variable $a.

Código PHP:
else
{
    echo 
"Debes especificar la busqueda";  

Esto indica que tu variable devuelve un valor nulo. pero en tu codigo tu le estas diciendo que si tu variable tiene un valor asociado te mande el mensaje:

Código PHP:
echo "Debes especificar la busqueda"
Debes formular bien tu accion de preguntar si no te duvuelve nada despues de esto es que no se han encontrado resultados.

Saludos.
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 01:50.