Generar enlaces con palabras clave desde base de datos

  • Autor Autor darkterry
  • Fecha de inicio Fecha de inicio
D

darkterry

Gamma
No recomendado
hola amigos betas estube haciendo un sistema de tag cloud pero la verdad es que se me complico un poco los codigos.

quiero que desde mi abse de datos llame la cadena.

emjemplo:

videos gratis, juegos gratis, vicio gratis, videos mas, mas videos, asi lo tengo en mi db de un campo


ahora quiero que eso se muestre asi:

videos gratis juegos gratis vicio gratis videos mas mas videos.

hasta ahi lo eh logrado pero el problema es esto:


cuando hago la consulta me sale:
videos gratis juegos gratis vicio gratis videos mas mas videos

perfecto pero cada palabra se genera un enlace es decir

<a href="">videos</a> <a href="">gratis</a> <a href="">juegos</a>

y asi con todas las palabras y lo que yo quiero es que cada , se respete y se genere un enlace asi

<a href="">videos gratis</a> <a href="">juegos gratis</a> <a href="">vicio gratis</a>


espero me hayan entendido espero sus respuestas mil gracias por la ayuda.

aqui les dejo el codigo si es que es util para alguien asi como esta y si alguien me puede ayudar con esto seria genial gracias:




$raw_tag=explode(",", trim($row3['clave']));
for($kl=0;$kl<count($raw_tag);$kl++)
{
$strr=$raw_tag[$kl];


$strr=str_replace("*","",$strr);
$strr=str_replace("-","",$strr);
$strr=str_replace("(","",$strr);
$strr=str_replace(")","",$strr);
$strb=str_replace("","",$strr);
$strb=str_replace("ñ","n",$strr);
if(strlen($strb)>3)//word length to avoid listing words like "and" "of" etc
{

$tag_string.=$strr." ";
}
}
}
$tag_array=explode(" ", $tag_string);
$tag_array=array_unique($tag_array);
shuffle($tag_array);
echo "<div id=\"tagcloud\">";

$tplm=count($tag_array);
if(count($tag_array)>50)
{
$tplm=50;//I want to list only 200 words
}
// start looping through the tags

for ($ii=0;$ii<$tplm;$ii++)
{
$tags_array[$ii]=$tag_array[$ii];
}
sort($tags_array);
for ($ii=0;$ii<$tplm;$ii++)
{
// determine the popularity of this term as a percentage
$percent = rand(1,100);
// determine the class for this term based on the percentage
if ($percent < 40)
{
$class = 'smallest';
} elseif ($percent >= 20 and $percent < 40) {
$class = 'small';
} elseif ($percent >= 40 and $percent < 60) {
$class = 'medium';
} elseif ($percent >= 60 and $percent < 80) {
$class = 'large';
} else {
$class = 'largest';
}

// output this term
echo "<span class=\"$class\"><a href=\"search.php?query=" . urlencode($tags_array[$ii]) . "\">" . $tags_array[$ii] . "</a></span> ";
}

// close the output
echo "</div><p>";
 
Aver campeón, vamos por la lógica

Lo primero que tienes que hacer, es obtener los cambos de la base de datos en una sola cadena

Insertar CODE, HTML o PHP:
$tags='videos gratis, juegos gratis, vicio gratis, videos mas, mas videos'

Luego, vectorizarla con explode en base a la coma

Insertar CODE, HTML o PHP:
$tags[]=('videos gratis', 'juegos gratis', 'vicio gratis', 'videos mas', 'mas videos');

Luego, realizas una cuenta de los items que tiene el vector

Insertar CODE, HTML o PHP:
$cantidad=count($tags);

Creas un ciclo que a ti te acomode y lo imprimes, el más simple "for"

Insertar CODE, HTML o PHP:
for ($i=0;$i<=$cantidad;$i++)
{
echo '<a href="">'.$tags[$i].'</a>';

}

Eso sería todo =)
 
Atrás
Arriba