Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2008, 15:24
Igbar
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 6 meses
Puntos: 0
Transformar variable en amigable

Hola a todos, llevo tiempo intentando realizar una cosa y no hay manera. He buscado información en internet y tampoco la encuentro así que me he decidido a enviarlo aqui con la esperanza de que alguno de vosotros pueda ayudarme.

El problema es el siguiente:

Tengo el siguiente código en la parte superior:

$sql_nav = "select cat_sub,cat_name from inl_cats where cat_id=$categoria_padre";
$categorias_nav = mysql_db_query($sql_db,$sql_nav);
$navbar[0] = $categoria_padre;
$c=1;
while(mysql_num_rows($categorias_nav) > 0){
$papa = mysql_result($categorias_nav,0,"cat_sub");
$navbar[$c] = $papa;
$sql_nav = "select cat_sub,cat_name from inl_cats where cat_id=$papa";
$categorias_nav = mysql_db_query($sql_db,$sql_nav);
$c++;
}
function dame_nombre($id){
global $cont , $sql_db;
$SQL = "select cat_name from inl_cats where cat_id=$id";
$categoria = mysql_db_query($sql_db,$SQL);
return mysql_result($categoria,0,"cat_name");
}

y luego tengo el siguiente código que muestra las categorías del directorio desde Inicio | Artes | Pintura etc. cada uno con su URL. Esto funciona correctamente.


<?
$arr = array_reverse ($navbar);
foreach($arr as $val){
if($val >0)
echo " | <a href=\"/empresas.php?cat=$val&title=".dame_nombre($val)."\ " class=\"navbar\">".dame_nombre($val)."</a> ";
}
?>


El problema esta en que no sé donde poner la variable .dame_nombre($val). en el código de debajo para que me la traduzca a amigable. (va apoyado junto con un .htaccess que funciona bien en otras partes del código).

$i = 0;
$total_subcat = intval(mysql_num_rows($subcategorias) / 3);
while($row = mysql_fetch_row($subcategorias)){
$ok = strtolower(strtr($row[0], "áéíóúñÁÉÍÓÚÑ", "aeiounaeioun"));
$find = array(' ', '&', '\r\n', '\n', '+');
$ok = str_replace ($find, '-', $ok);
$ok=str_replace("-de-", "-", $ok);
$ok=str_replace("-del-", "-", $ok);
$ok=str_replace("-en-", "-", $ok);
$ok=str_replace("-l-", "-", $ok);
$ok=str_replace("-y-", "-", $ok);
$ok=str_replace("-/-", "-", $ok);
$ok=str_replace("/.", ".", $ok);
$ok=str_replace("--","-",$ok);


No sé si me he explicado bien, el tema esta en que la variable .dame_nombre($val). sea filtrada nada más. Si lo hubiera echo con una variable &var si me funciona pero al tener puntos antes no sé que hacer.

Muchas gracias de antemano, espero hacerme entender.