Foros del Web » Programando para Internet » PHP »

Problema Con buscador !!!

Estas en el tema de Problema Con buscador !!! en el foro de PHP en Foros del Web. Hola que tal foreros php, queria hacerle una consulta miren mi amigo Matys me ayudo hacer un buscador para una web que estoy aciendo pero ...
  #1 (permalink)  
Antiguo 11/04/2009, 16:50
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Mensaje Problema Con buscador !!!

Hola que tal foreros php, queria hacerle una consulta miren mi amigo Matys me ayudo hacer un buscador para una web que estoy aciendo pero el problema que no me funciona, jeje ustedes que saben me podrian decir cual es el error y corregir el codigo por favor...

DB:
Código PHP:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE TABLE `noticias` (
  `
idint(11NOT NULL auto_increment,
  `
titulovarchar(255NOT NULL,
  `
noticialongtext NOT NULL,
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=;


INSERT INTO `noticiasVALUES (1'Noticia 1''MaTyS, desde siempre fue el mejor programador en PHP sin sabes ASP.');
INSERT INTO `noticiasVALUES (2'Noticia 2''MaTyS, hasta que un día aprendio ASP, y fue el mejor en PHP y ASP.'); 

Web:
Código PHP:
<html>
<head>
<title>Buscador simple en PHP</title>
</head>
<body>
<form action="buscar.php" method="post">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar">
</form>
<?
if ($_POST['buscador'])
{
// Tomamos el valor ingresado
$buscar $_POST['palabra'];

// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo 
"No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos y seleccion de registros
$con=mysql_connect("localhost","root","strikefay");
$sql "SELECT * FROM noticias WHERE noticia like '%$buscar%' ORDER BY id DESC";
mysql_select_db("buscador"$con);

$result mysql_query($sql$con);

// Tomamos el total de los resultados
$total mysql_num_rows($result);

// Imprimimos los resultados
if ($row mysql_fetch_array($result)){
echo 
"Resultados para: <b>$buscar</b>";
do {
?>
<p><b><a href="noticia.php?id=<?=$row['id'];?>"><?=$row['titulo'];?></a></b></p>
<?
} while ($row mysql_fetch_array($result));
echo 
"<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
}
}
?>
</body>
</html>
bueno desde ya muchas gracias aquellos que me ayuden..
y si pueden y si tienen nalgun buscador algo tipo parecido a este agradeceria muchisimo si me lo pueden pasar. el buscador es para una web de musica y como yo noce casi de php y SQL , les agradeceria que me den un ejemplo completo...
  #2 (permalink)  
Antiguo 11/04/2009, 16:55
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Problema Con buscador !!!

mmm debes de ser más específico(porque decir que no funciona pero que no te muestra resultados o algo asi????).

utiliza el tag completo de php (<?php ?>).
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #3 (permalink)  
Antiguo 11/04/2009, 16:59
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Respuesta: Problema Con buscador !!!

Por Ejemplo mira cuando trato de buscar Matys que esta en una de las tablas de la db me da este error :

Código HTML:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\buscador\buscar.php on line 29

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\buscador\buscar.php on line 32
No se encontraron resultados para: Matys
:s y como no comprendo mucho de php noce que significa :s
  #4 (permalink)  
Antiguo 11/04/2009, 17:03
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Problema Con buscador !!!

estructura básica
Código :
Ver original
  1. //conexión y selección de DB
  2. $sql="cadena de consulta";
  3. $query=mysql_query($sql,$conn);
  4. if(mysql_num_rows($query)>0)
  5. {
  6. while($row=mysql_fetch_array($query))
  7. {
  8. echo $row[0];
  9. echo $row[1];
  10. //... más campos a mostrar y además personalizar la presentación.
  11. //si quieres mostrar el total, imprime mysql_num_rows($query), que te muestra el número de registros coincidentes encontrados.
  12.  
  13. }
  14. imprime el total fuera del bucle while
  15. }
  16. else
  17. {
  18. //mostrar mensaje de que no se encontraron resultados.
  19. }
__________________
Software libre para un mundo libre.

Eventualmente en el foro.

Última edición por argy; 11/04/2009 a las 17:06 Razón: imprime el total fuera del bucle while
  #5 (permalink)  
Antiguo 11/04/2009, 17:20
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
Respuesta: Problema Con buscador !!!

entonces seria asi ?:

Código PHP:
<html>
<head>
<title>Buscador simple en PHP</title>
</head>
<body>
<form action="buscar.php" method="post">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar">
</form>
<?
if ($_POST['buscador'])
{
// Tomamos el valor ingresado
$buscar $_POST['palabra'];

// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo 
"No se ha ingresado una cadena a buscar";
}else{
//conexión y selección de DB
$sql="cadena de consulta";
$query=mysql_query($sql,$conn);
if(
mysql_num_rows($query)>0)
{
while(
$row=mysql_fetch_array($query))
{
echo 
$row[0];
echo 
$row[1];
//... más campos a mostrar y además personalizar la presentación.
//si quieres mostrar el total, imprime mysql_num_rows($query), que te muestra el número de registros coincidentes encontrados.       
}
 
imprime el total fuera del bucle while
}
 else
{
//mostrar mensaje de que no se encontraron resultados.
}
}
}
?>
</body>
</html>
o como?
perdonem mi ignorancia es que nunca estudie programacion php se un poco nomas pero no mucho
  #6 (permalink)  
Antiguo 11/04/2009, 17:41
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Problema Con buscador !!!

imprime el total fuera del bucle while
ahi debes de mostrar el total con mysql_num_rows($query);

en la variable query debes de poner tu cadena de consulta sql

te falta la conexion y selección de BD.

utiliza el tag completo de php(<?php ?>)

por último la teoría y la práctica van de la mano, por lo que es necesario que leas algo de teoría.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #7 (permalink)  
Antiguo 11/04/2009, 17:43
 
Fecha de Ingreso: diciembre-2007
Ubicación: Lima
Mensajes: 23
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema Con buscador !!!

Prueba de esta manera:

Código PHP:
<html> 
<head> 
<title>Buscador simple en PHP</title> 
</head> 
<body> 
<form action="buscador.php" method="post"> 
Buscar: <input name="palabra"> 
<input type="submit" name="buscador" value="Buscar"> 
</form> 
<? 
if ($_POST['buscador']) 

    
// Tomamos el valor ingresado 
    
$buscar $_POST['palabra']; 

    
// Si está vacío, lo informamos, sino realizamos la búsqueda 
    
if(empty($buscar)) 
    { 
        echo 
"No se ha ingresado una cadena a buscar"
    }
    else
    {

        
//conexión y selección de DB 
        
$con=mysql_connect("localhost","","");
        
mysql_select_db("beat"$con);
        
$sql="SELECT * FROM noticias WHERE noticia like '%$buscar%' ORDER BY id DESC"
        
$query=mysql_query($sql,$con); 
        if(
mysql_num_rows($query)>0
        { 
            while(
$row=mysql_fetch_array($query)) 
            { 
            echo 
$row[0]; 
            echo 
$row[1]; 

            }
        } 
        else 
        { 
            echo 
"no se encontraron resultados.";
        } 
    } 

?> 
</body> 
</html>
Saludos
  #8 (permalink)  
Antiguo 13/04/2009, 07:17
Avatar de danistrein  
Fecha de Ingreso: septiembre-2008
Ubicación: Salta Capital
Mensajes: 550
Antigüedad: 15 años, 7 meses
Puntos: 9
De acuerdo Respuesta: Problema Con buscador !!!

jeje era asi miren el gran Pato12 me ayudo con el codigo y si funciona muchas grasias a todos lo que me respondieron ayudandome ! :

Código PHP:
<form action="includes/buscador/buscador.php" method="post"> 
Buscar: <input name="palabra"> 
<input type="submit" name="buscador" value="Buscar"> 
</form> 
<? 
if ($_POST['buscador']) 

    
// Tomamos el valor ingresado 
    
$buscar $_POST['palabra']; 

    
// Si está vacío, lo informamos, sino realizamos la búsqueda 
    
if(empty($buscar)) 
    { 
        echo 
"No se ha ingresado una cadena a buscar"
    }
    else
    {

        
//conexión y selección de DB 
        
$con=mysql_connect("localhost","root","strikefay") or die("Datos de conexion erroneos: ".mysql_error());
        
mysql_select_db("noticias"$con) or die("Base de datos incorrecta: ".mysql_error());
        
$sql="SELECT * FROM noticias WHERE noticia like '%$buscar%' ORDER BY id DESC"
        
$query=mysql_query($sql,$con) or die("Query error: ".mysql_error());
        if(
mysql_num_rows($query)>0
        { 
            while(
$row=mysql_fetch_array($query)) 
            { 
                echo 
'<p><b><a href="noticia.php?id='.$row['id'].'">'.$row['titulo'].'</a></b></p>';
            }
            echo 
'<hr> Se han encontrado '.mysql_num_rows($query).' resultados.';
        } 
        else 
        { 
            echo 
"No se encontraron resultados con $buscar.";
        } 
    } 

?>
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:26.