Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/09/2009, 04:27
puntoypixel
 
Fecha de Ingreso: enero-2004
Ubicación: Madrid
Mensajes: 41
Antigüedad: 20 años, 3 meses
Puntos: 0
Probelmas en una función recursiva, no consigo verlo

Hola a todos,

llevo 3 días con esta función realmente tonta, pero no consigo hacerla funcionar. A ver si podéis ayudarme.

Es una función para asegurarme que el cliente no escribe dos url iguales dentro de una misma sección porque es el campo url el que voy a usar para mostrar una página u otra, es decir debe ser único dentro de su sección.

La función mira en la base de datos si hay una página con la misma url dentro de una misma sección. Si la hay reescribe añadiendo un -1, -2,-3, y así sucesivamente hasta que encuentra una url que no existe todavía.

Código PHP:
function check_url($url,$nav_id,$field,$table,$new_url,$i=0){

    global 
$conexion;
    
$sql mysql_query("SELECT ".$field." FROM ".$table." WHERE ".$field."='$new_url' AND nav_id=$nav_id",$conexion);
    if(
mysql_num_rows($sql)!=0){
        
$i++;
        
$new_url=$url.'-'.$i;
        
check_url($url,$nav_id,$field,$table,$new_url,$i);
    }else{
        return 
$new_url;
    }

El problema que me encuentro es que no me devuelve nada. En cambio si en vez de return $new_url; pongo echo $new_url; me muestra el valor correcto.

Seguro que es una estupidez, pero no soy capaz de verla.
__________________
La palabra humano es peyorativa