Foros del Web » Programando para Internet » PHP »

¿como mostrar el primer parrafo? resultados bd

Estas en el tema de ¿como mostrar el primer parrafo? resultados bd en el foro de PHP en Foros del Web. Hola, antes que nada se que en las faq's hay una funcion para mostrar el primer parrafo de un texto, lo que pasa es que ...
  #1 (permalink)  
Antiguo 25/11/2006, 12:55
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 20 años, 6 meses
Puntos: 0
¿como mostrar el primer parrafo? resultados bd

Hola, antes que nada se que en las faq's hay una funcion para mostrar el primer parrafo de un texto, lo que pasa es que no se como implementarlo al mostrar los resultados de una base de datos, aqui es donde quiero que aparezca

Código PHP:
$textbody .= "<hr noshade size=\"1\" width=\"100%\" color=\"#000000\">";
    
//header tabla
$textbody .= "<center><table width=\"95%\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\" align=\"center\" style=\"$tablacompleta\">";
$textbody .= "<tr>";
$textbody .= "<td colspan=\"2\" width=\"100%\" height=\"20\" bgcolor=\"#425161\" nowrap><img src=\"".$nukeurl."/modules/".$module_name."/images/wl.png\" border=\"0\" align=\"absmiddle\">&nbsp;<a href=\"".$nukeurl."/modules.php?name=Web_Links\" title=\"Ultimos Enlaces\"><font style=\"".$fuentesheaders."\">".$mbdn_links."&nbsp;"._NBMLINK."</font></a></td>";
$textbody .= "</tr>";
    
//titulos
$textbody .= "<tr bgcolor=\"#54667A\">";
$textbody .= "<td width=\"170\" nowrap>&nbsp;&nbsp;&nbsp;<font style=\"".$fuentestitulos."\">"._NBMELTITLE."</font></td>";
$textbody .= "<td align=\"center\" nowrap>&nbsp;<font style=\"".$fuentestitulos."\">"._NBMDESCRIPT."</font>&nbsp;</td>";
//$textbody .= "<td align=\"center\" nowrap>&nbsp;<font style=\"".$fuentestitulos."\">"._NBMLINKVISITAS."</font>&nbsp;</td>";
$textbody .= "</tr>";

    
$querywl "select lid, cid, sid, title, description, date, hits from ".$prefix."_links_links ORDER BY lid desc limit 0, $mbdn_links";
    
$result4 $db->sql_query($querywl);
    
$numwl $db->sql_numrows($result4);
        for(
$i 0$i $numwl$i++){
        list(
$lid$cid$sid$title$description$time$hits)=$db->sql_fetchrow($result4);
        
$e=$i+1;
    
//enlaces
$textbody .= "<tr bgcolor='#F3F3F3'>";
$textbody .= "<td width=\"170\" nowrap>&nbsp;<font style=\"".$fuentesenlaces."\">".$e." - </font><a href=\"".$nukeurl."/modules.php?name=Web_Links&l_op=viewlinkdetails&lid=".$lid."&ttitle=".$title."\" title=\"".$description."\"><font style=\"".$fuentesenlaces."\">".$title."</font></a></td>";
$textbody .= "<td align=\"center\" nowrap>&nbsp;<font style=\"".$fuentesenlaces."\">".$description."</font>&nbsp;</td>";
//$textbody .= "<td align=\"center\" nowrap>&nbsp;<font style=\"".$fuentesenlaces."\">".$hits."</font>&nbsp;</td>";
$textbody .= "</tr>";
        }
$textbody .= "</table></center>";
$textbody .= "<br>"
como podeis ver es de un modulo de nuke, pero lo pregunto aqui porque es de php y es algo simple, solo que para mi no lo es al no saber mucho de php, solo quiero que donde esta la variable ".$description.", me muestre el primer parrafo de la descripcion, o los 200 primeros caracteres, algo asi, como en esas paginas que al final dice "leer mas".
Como podria hacer eso?

Saludos
  #2 (permalink)  
Antiguo 25/11/2006, 13:22
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 9 meses
Puntos: 4
no es nada dificil de implementar dicho script, lo ke yo hago es guardar dicha funcion en un archivo aparte y luego antes de hacer la sentencias SQL lo llamo con un include() te pondre un ejemplo muy basico de como hacerlo

Código PHP:
<?
  
include('connectdb.php'); // archivo de conexion a la BD
  
include('funcionparrafo.php'); // archivo ke contiene la funcion ke muestra el 1er parrafo del articulo
  
$sql mysql_query("SELECT * FROM articulos ORDER BY fecha DESC");
  while(
$row mysql_fetch_array($sql)) {
    
$texto parrafo($row['contenido']); // parrafo es el nombre de la funcion y la llamamos para ke se ejecute en el campo contenido de nuestro articulo
?>
  <strong>titulo del articulo</strong><br />
  <?=$texto?>
  <!-- por aki mas contenido html -->
<?
  
// cerramos el while
?>
ahi lo tienes, espero ke te sirva de ayuda. Otra cosa ke te recomiendo es no meter codigo html dentro de variables PHP o dentro de echos pk ten en cuenta ke al final PHP devuelve codigo HTML al cliente entonces el codigo html no necesita ser parseado de ninguna manera
  #3 (permalink)  
Antiguo 25/11/2006, 13:47
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias zydrick lo voy a probar aunque yo intente hacer eso $texto = parrafo($row['contenido']); pero me tiraba error, otra cosa no se si tiene algo que ver pero esta funcion se envia luego por correo es de un boletin sera por eso que tiene codigo html? lo pregunto porque no lo se, no esta hecho por mi.

Por cierto el ejemplo es utilizando la funcion de las fq's no?

osea dentro del codigo que he puesto seria $texto = parrafo($row['description']); ?

Saludos
  #4 (permalink)  
Antiguo 25/11/2006, 14:26
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 9 meses
Puntos: 4
si, es usando la misma funcion ke esta en las faq's.
  #5 (permalink)  
Antiguo 25/11/2006, 16:01
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 20 años, 6 meses
Puntos: 0
gracias ya lo he conseguido :) una cosa si quiero mostrar solo una parte, como los primeros 100 o 200, etc caracteres, sabes como podria hacerlo? lo pregunto porque hay parrafos que son muy largos jejejeje
  #6 (permalink)  
Antiguo 25/11/2006, 16:15
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 18 años, 11 meses
Puntos: 5
Mhh usando left:

SELECT * FROM articulos LEFT(campo,cantidad) ORDER BY fecha DESC articulos ORDER BY fecha DESC

En campo va el campo que queres que sean los pirmeros 100 o 200 caracteres y en cantidad la cantidad de caracteres...

Espero que te funcione.
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 22:16.