Foros del Web » Programando para Internet » PHP »

busqueda en mysql

Estas en el tema de busqueda en mysql en el foro de PHP en Foros del Web. hola amigos quisiera....por medio de un formulario donde colocar la palabra que se quiere encontrar en la base de datos....y asi mostrar los registros que ...
  #1 (permalink)  
Antiguo 11/02/2003, 21:42
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 10 meses
Puntos: 2
busqueda en mysql

hola amigos quisiera....por medio de un formulario donde colocar la palabra que se quiere encontrar en la base de datos....y asi mostrar los registros que contiene esa palabra....si alguien me puede dar una mano de como comenzar se lo agradeceria....ya busque en www.hotscripts.com pero es demasiado para lo qure deseo....desde ya muchas gracias!!
  #2 (permalink)  
Antiguo 11/02/2003, 22:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Solo tienes que hacer consultas tipo:

SELECT * FROM tabla WHERE campo LIKE '%$buscar%'

Usando LIKE y los "wilcards" (comodines) "%" (tanto delante de la cadena a buscar como detras) puedes buscar las coincidencias de esa palabra en el campo q busques .. Si quieres la palabra "exacta" tan solo con un condicional en la consulta tipo:

... WHERE campo='$buscar' ..

Puede servir .. (tambien un LIKE '$buscar' .. sin comodines ..)

Cosas mas "complejas" como buscar en varios campos a la vez .. o por "palabraS .." Solo tendiras q usar operadores lógicos en tus consultas: AND .. OR . y mas LIKE de ese tipo ...

Un saludo,
  #3 (permalink)  
Antiguo 11/02/2003, 22:45
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
Consulta

puedes abrir tu conexion de la siguiente manera:

$conexion = mysql_connect("localhost","usuario","password");
mysql_select_db("base de datos",$conexion);
$consulta = "select * from tabla ";
$busqueda = mysql_query($consulta,$conexion);

espero te sirva claro esto si usas una base de datos mysql
  #4 (permalink)  
Antiguo 12/02/2003, 22:16
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 10 meses
Puntos: 2
TODO MAL

hola amigos aqui les dejo el codigo de busqueda a ver si me pueden orientar un poquito por
  #5 (permalink)  
Antiguo 12/02/2003, 22:23
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 10 meses
Puntos: 2
TODO MAL

aqui les dejo amigos el codigo de busqueda para ver si me pueden orientar un poquito, porque la verdad estoy mas desubicado que "inodoro en el living"

---------------------------busqueda.php-----------------------------------


<style type="text/css">
.boton{
font-size:10px;
font-family:Verdana,Helvetica;
font-weight:bold;
color:white;
background:#638cb5;
border:0px;
width:80px;
height:19px;
}
</style>
<HTML>
<HEAD>
<TITLE>Busqueda de un Cliente</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Ingrese el Cliente a Buscar</h1>
<br>
<FORM METHOD="POST" ACTION="buscar.php">
<table width="122" border="1" cellspacing="2" cellpadding="0">
<tr>
<td><INPUT TYPE="TEXT" NAME="palabra"></td>
</tr>
</table>
<INPUT TYPE="SUBMIT" value="Buscar" class="boton" name="boton">
</FORM>
</div>
</BODY>
</HTML>

--------------------------------buscar.php-------------------------------------
Código PHP:

<HTML>
<HEAD>
<TITLE>Busqueda</TITLE>
</HEAD>
<BODY>
<h1><div align="center">Visualizacion de los Clientes Encontrados</div></h1>
<br>
<br>

<?


//Mostramos los registros



$conexion mysql_connect("localhost","","");
mysql_select_db("inticomp",$conexion);
$consulta "SELECT * FROM gestion WHERE nombre LIKE '%$palabra%'";
$busqueda mysql_query($consulta,$conexion);



  echo 
"<table width='100%' border=1 cellspacing='0' align='center' bordercolor='#000000'>\n";

    echo 
"<tr>
              <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>ID</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Nombre</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Apellido</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Direccion</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Telefono</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Diagnostico</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Precio</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Fecha</font></div>
            </td>
        </tr>\n"
;;
        


$lista_colores=array('#4682B4','FF7F50');
$num_colores=2;
$indice=0;

        
        
        

while (
$row=mysql_fetch_row($busqueda))
{

$color=$lista_colores[$indice $num_colores];
$indice++;
 
 
 
 
 
 
  echo 
"<tr bgcolor=\"$color\">
              <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["id"]; echo "</font>
            </td>
              <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_nombre"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_apellido"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_direccion"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_telefono"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_diagnostico"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_precio"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_fecha"]; echo "</font>
            </td>
        </tr>\n"
;




}


?>
</table>
</BODY>
</HTML>
Desde ya Muchas Gracias
  #6 (permalink)  
Antiguo 12/02/2003, 22:43
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
consulta

bueno debes checar el nombre del usuario y si tiene password ponerselos .

tambien debes meter dentro de un do los registros que resulten de esa consulta es decir.

do{




echo "<td>$row[id]</td> ";
echo "<td>$row[c_nombre]</td> ";
echo "<td>$row[c_apellido]</td> \n \n";
echo "<td>$row[c_direccion]</td>";
echo "<td>$row[c_telefono]</td>";
echo "<td>$row[c_diagnostico]</td>";




}while($row = mysql_fetch_array($consulta));



Última edición por payo22; 12/02/2003 a las 22:52
  #7 (permalink)  
Antiguo 12/02/2003, 23:02
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 10 meses
Puntos: 2
De acuerdo

la verdad payo22 gracias.....pero la verdad no te entiendo lo que me estas queriendo decir.....si pones algo de codigo mejor!

Desde ya Muchas Gracias!
  #8 (permalink)  
Antiguo 12/02/2003, 23:12
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
codigo de ejemplo

aqui te mando un codigo de ejemplo:

<html>
<body>
<?php


$link = mysql_connect("localhost","usuario de la BD","password del usuario");
mysql_select_db("prueba",$link);
$sql = "SELECT * FROM clientes WHERE nombre LIKE '%$buscar%'ORDER BY nombre" ;
$result = mysql_query($sql,$link);

if ($row=mysql_fetch_array($result)){
echo "<table border = '1'> \n";
//Mostrramos los nombres de las tablas
//echo "<tr> \ndigo" style = "margin-left:50">echo "</tr> \n";
mysql_field_seek($result,0);

while($field = mysql_fetch_field($result)){
echo "<td><b>$field->name</b></td> \n";
}

echo "</tr> \n";

do{
echo "<tr> \n";
echo "<td>.$row[nombre].</td> \n";
echo "<td>.$row[edad].</td> \n";
echo "<td>.$row[sueldo].</td> \n";
echo "<td>.$row[memo].</td> \n";
}while($row = mysql_fetch_array($result));


echo "</table> \n";

}else{
echo "<p> No se encontro ningun registro!</p> \n";

}
?>
</body>
</html>



espero te sirva
  #9 (permalink)  
Antiguo 12/02/2003, 23:42
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 10 meses
Puntos: 2
gracias payo22.........pero lo probaste al codigo a mi no me anda......de donde sale la variable $field->name ......si puedes decirme en que falla el codigo que yo puse te lo agradeceria mucho, sino me complico bastante.

Desde Ya Muchas Gracias!
  #10 (permalink)  
Antiguo 13/02/2003, 10:15
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 10 meses
Puntos: 2
Gracias PAYO22 te agradezco de verdad el tiempo que me dedicas
pero me sigue dando error......mira:
Cita:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\appserv\www\gestion\buscar.php on line 64
o sea hace referencia a esta linea:
Cita:
while ($row=mysql_fetch_array($busqueda))
si sabes algo al respecto te lo agradeceria "nuevamente"
  #11 (permalink)  
Antiguo 13/02/2003, 10:56
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
Haber si asi si

<HTML>
<HEAD>
<TITLE>Busqueda</TITLE>
</HEAD>
<BODY>
<form>
<h1><div align="center">Visualizacion de los Clientes Encontrados</div></h1>
<br>
<br>

<?


//Mostramos los registros



$conexion = mysql_connect("localhost","root","admin");
mysql_select_db("Informe",$conexion);
$consulta = "SELECT * FROM clientes WHERE nombre = $Buscar";
$busqueda = mysql_query($consulta,$conexion);



echo "<table width='100%' border=1 cellspacing='0' align='center' bordercolor='#000000'>\n";

echo "<tr>
<td bgcolor=#cccccc>
<div align='center'><font color='#000000'>id</font></div>
</td>
<td bgcolor=#cccccc>
<div align='center'><font color='#000000'>Nombre</font></div>
</td>
<td bgcolor=#cccccc>
<div align='center'><font color='#000000'>Apellido</font></div>
</td>
<td bgcolor=#cccccc>
<div align='center'><font color='#000000'>Direccion</font></div>
</td>
<td bgcolor=#cccccc>
<div align='center'><font color='#000000'>telefono</font></div>
</td>
<td bgcolor=#cccccc>
<div align='center'><font color='#000000'>Diagnostico</font></div>
</td>
<td bgcolor=#cccccc>
<div align='center'><font color='#000000'>Precio</font></div>
</td>
<td bgcolor=#cccccc>
<div align='center'><font color='#000000'>Feecha</font></div>
</td>
</tr>\n";



$lista_colores=array('#4682B4','FF7F50');
$num_colores=2;
$indice=0;





while ($row=mysql_fetch_array($busqueda))
{
$color=$lista_colores[$indice % $num_colores];
$indice++;

echo "<tr bgcolor=\"$color\">";
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[ID]</font></td>";
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[Nombre]</font></td>";
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[Apellido]</font></td>";
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[Direccion]</font></td>";
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[Telefono]</font></td>";
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[Diagnostico]</font></td>";
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[Precio]</font></td>";
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[Fecha]</font></td>";
echo " </tr>\n";

}


echo "</table>";


?>
</form>
</BODY>
</HTML>

espero asi ya salga pon atencion a lo que dice el Maestro Cluster.

a mi ya me funciono asi espero te funcione igual.
  #12 (permalink)  
Antiguo 13/02/2003, 15:13
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
Checa tu conexion

Mira checa tu conexion esto lo haces mandando a imprimir dicha variable:

echo $conexion;

si el resultado = 1 entonces el problema no es con la conexion si no con la consulta checa el nombre de la DB como la tabla y la sentencia que hacer para realizar la busqueda.

espero te ayude
  #13 (permalink)  
Antiguo 13/02/2003, 15:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Para detectar errores de SQL . usa:

Código PHP:
$result mysql_query($sql,$link) or die(mysql_error()); 
Ahí obtendras los errores de SQL q puedas tener .. tanto de algun error de sintax como por ejemploq el link de conexion no esté hecho ..

Puedes emplear el or die(msyql_error)) .. en tus mysql_connect() y en cualquier funcion de mysql ..

Un saludo,
  #14 (permalink)  
Antiguo 13/02/2003, 15:42
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Comprueba que el valor devuelto por mysql_query() no es FALSE. Si es FALSE es que tu consulta SQL es erronea y puedes sacar el mensaje de error con mysql_error(). Seria algo asi:
Código PHP:
$busqueda mysql_query($consulta,$conexion);
if (!
$busqueda)
{
  echo 
"Error en la consulta $consulta. Mysql dice: "mysql_error();
  exit;

Normalmente es que has puesto mal el nombre del campo o de la tabla. Por cierto, si quieres comparar un texto debes poner comillas en la SQL

... where nombre=''$Buscar"

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #15 (permalink)  
Antiguo 16/02/2003, 15:12
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 10 meses
Puntos: 2
gracias amigos ya logre solucionar el problema!
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 21:12.