Foros del Web » Programando para Internet » PHP »

limitar caracteres en los resultados de una busqueda en mysql

Estas en el tema de limitar caracteres en los resultados de una busqueda en mysql en el foro de PHP en Foros del Web. actualmente utilizo este codigo para el bucador de mi sitio...es un buscador simple en php y mysql... <form action="buscar.php" method="post"> Buscar: <input name="palabra"> <input type="submit" ...
  #1 (permalink)  
Antiguo 06/01/2007, 23:58
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 0
limitar caracteres en los resultados de una busqueda en mysql

actualmente utilizo este codigo para el bucador de mi sitio...es un buscador simple en php y mysql...

<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("host","USUARIO","CONTRASEÑA");
$sql = "SELECT * FROM contenido WHERE contenido like '%$buscar%' ORDER BY url DESC";
mysql_select_db("TABLA", $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>Te recomendamos seas especifico en tu busqueda para obtener mejores resultados. </p>
<p><b><a href="<?=$row['url'];?>"><?=$row['titulo'];?></a></b>
<?=$row['des'];?></p>
<p>&nbsp;</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>";
}
}
}
?>


tengo 4 campos en la tabla, TITULO, DES, URL, CONTENIDO....cuando imprime los resultaos imprime el titulo (linkeado al link de la consulta q es URL) y la descripcion (des)... exactamente aqui :
<b><a href="<?=$row['url'];?>"><?=$row['titulo'];?></a></b>
<?=$row['des'];?>


pero quiero en ves de imprimir la descripcio quiero imprimir el camo CONTENIDO de cada resutlado de la consulta pero no quiero que pase de cierta cantidad de caracteres podria imprimir el TITULO (linkeado a la URL) y CONTENIDO pero como hago para limitar la imprecion de CONTENIDO a cierta cantidad de caracteres...

como por ejemplo ahce google sale una descripcion de cada pagina pero limita los caracteres y la descripcion termina en "......"

si alguien puede ayudarme muchas gracias...espero este tema vaya aqui...


  #2 (permalink)  
Antiguo 07/01/2007, 00:53
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 2 meses
Puntos: 5
Re: limitar caracteres en los resultados de una busqueda en mysql

Hola, oye con la función substr
http://www.php.net/substr

Aqui te dejo un simple ejemplo,
Código PHP:
<?
$texto 
"Esto es el contenido de un Campo MySQL"
$texto substr($texto020);
echo 
$texto."...";
// esto Imprime : Esto es el contenido...
?>
Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #3 (permalink)  
Antiguo 07/01/2007, 13:57
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: limitar caracteres en los resultados de una busqueda en mysql

oie me podrias explicar un poco mejor como funciona esa funcion.. la verdad no la entiendo mucho... pero asi tendria que cambiar todo el codigo?¿ . . o donde exactamente iria esa funcion?¿ . . .

saludos
  #4 (permalink)  
Antiguo 07/01/2007, 15:10
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
Re: limitar caracteres en los resultados de una busqueda en mysql

haces esto mira, la MISMA FUNCION QUE TE COMENTARION PARA PHP, ESTA PARA MYSQL
Código PHP:
$caracteres_limite 200;
$sql "SELECT 
url, 
titulo, 
MID(des,1,$caracteres_limite) AS des 
FROM contenido 
WHERE contenido like '%$buscar%' 
ORDER BY url DESC"

  #5 (permalink)  
Antiguo 07/01/2007, 15:15
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 2 meses
Puntos: 5
Re: limitar caracteres en los resultados de una busqueda en mysql

Un ejemplo seria asi (Tomando un trozo de tu codigo donde imprimes resltados del mysql)

Original :
Código PHP:
<?=$row['des'];?></p>
<p>&nbsp;</p>
Ejemplo :
Código PHP:
<?echo substr($row['des'], 020)."..."?></p>
<p>&nbsp;</p>
Eso te limitara el contenido de los caracteres del campo a no mas de 20 seguidos de tres puntos.-

de todas maneras leete este enlace hay muchos ejemplos
http://www.php.net/substr

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #6 (permalink)  
Antiguo 07/01/2007, 15:20
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
Re: limitar caracteres en los resultados de una busqueda en mysql

no suelo discutir para nada lo que hacen otros programadores pero creo, es muucho mas conveniente hacerlo de la manera que he sugerido pues es claro que es mas trabajoso para mysql devolver toda la informacion que solo una parte cosa que se consigue con el codigo que le he pasado, aplicando la funcion equivalente en mysql directamente en la consulta..
Saludos
  #7 (permalink)  
Antiguo 07/01/2007, 15:26
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 2 meses
Puntos: 5
-

Double Post.- en el envio.-

(Por eso edite.-)
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com

Última edición por xyyy7; 07/01/2007 a las 15:29 Razón: Doble post
  #8 (permalink)  
Antiguo 07/01/2007, 15:27
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 2 meses
Puntos: 5
Re: limitar caracteres en los resultados de una busqueda en mysql

Bueno dependiendo el caso...

para este en particualar lo haria directamente desde mysql y no con php.- pero para otros lo haria con php.- (insisto dependiendo el caso.-)

ahora bien le di la opción php.- por que lo pregunto. (kurtjavier ahora tienes dos opciones validas.-)

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #9 (permalink)  
Antiguo 07/01/2007, 22:31
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: limitar caracteres en los resultados de una busqueda en mysql

jajaj bueno muchas gracias a los dos voy a probar a ver cual me funciona mejor... aunque me funcionaria mejor la qeu sea mas rapida.. uds saben para que los usuarios no esperen tanto por la respuesta...

bueno hay lo pruebo y coloco los resultados....
  #10 (permalink)  
Antiguo 07/01/2007, 22:39
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: limitar caracteres en los resultados de una busqueda en mysql

Cita:
Iniciado por xyyy7 Ver Mensaje
para este en particualar lo haria directamente desde mysql y no con php.- pero para otros lo haria con php.- (insisto dependiendo el caso.-)
En que casos crees que seria mas conveniente hacerlo con php?

Gracias.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #11 (permalink)  
Antiguo 07/01/2007, 23:39
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: limitar caracteres en los resultados de una busqueda en mysql

la verdad compadres probe los dos... trate de modificar cada uno a ver donde estaba el error y ninguno me funciono... aunque yo creo es un problema en elbuscador como tal xq a veces trato de buscar algo y lo que ahce es cargarme otra es la apgina y no muestra los resultados y tengo que hacer la consulta varias veces hasta que me da los resultados...
  #12 (permalink)  
Antiguo 08/01/2007, 00:50
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: limitar caracteres en los resultados de una busqueda en mysql

perfecto ya lo tengo ahora si quedo bello jajaja... explico por sia...:

solo agregue como dijo XYYY7 un "substr" en la impresion de resultados de modo que ahora queda:

Código PHP:
<?= substr($row['contenido'],0,255);?>
aplico el "substr" al campo de mi tabla CONTENIDO y que nuestre solo los caracteres desde el 0 hasta el 255....

pero me intereza como dice tambien NEFERTITER xq es verdad..con ese codigo mysql devolvera toda la informacion y despues es que se mostraran solo hasta los 255 caracteres.. lo que hace la consulta mas lenta .. en cambio si de alguna forma enviariamos la sentencia para que mysql solo devuelva la informacion hasta el caracter 255 la busqueda seria mas rapida... bueno eso es lo que pienso yo teoricamente.....

ahora solo falta la paginacion jajaja alguna sugerencia de una ves?

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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:35.