Foros del Web » Programando para Internet » PHP »

No puedo llamar a una funcion desde dentro de otra

Estas en el tema de No puedo llamar a una funcion desde dentro de otra en el foro de PHP en Foros del Web. Hola amigos, mirad, quiero llamar a una función desde otra pero no me devuelven nada, a ver si es que me falta algo, aquí teneis ...
  #1 (permalink)  
Antiguo 28/09/2007, 12:39
Avatar de hvpareja  
Fecha de Ingreso: marzo-2007
Ubicación: En Vélez Málaga (Málaga)
Mensajes: 213
Antigüedad: 17 años, 1 mes
Puntos: 4
No puedo llamar a una funcion desde dentro de otra

Hola amigos, mirad, quiero llamar a una función desde otra pero no me devuelven nada, a ver si es que me falta algo, aquí teneis parte de mi código:

Una función a la que quiero llamar:
Código PHP:
function test_subcat($id){
    global 
$con;
    
$sql "select * from categorias where identificador='$id'";
    
$rs mysql_query($sql$con);
    if(
mysql_num_rows>0){
        return 
true;
        echo 
"Ha devuelto verdadero";
        }
    else{
        return 
false;
        echo 
"Ha devuelto falso";
        }
    
mysql_free_result($rs);

Y desde la siguiente función vereis como quiero llamar a la primera:

Código PHP:

function menu_cat(){
    global 
$con;
    
$id $_GET['id'];
    
$sql "select id, categoria_es from categorias where identificador=0 and catalogo=1";
    
$rs mysql_query($sql$con);
    while(
$row mysql_fetch_assoc($rs)){
        echo 
"<a href='view_data.php?id=".$row['id']."'>".$row['categoria_es']."</a><br>";
            if(
test_subcat($row['id'])&&$id==$row['id']){//<---- aquí está la susodicha
                
despliegue($row['id']);
                }
    } 
Por favor ayudadme!! gracias por adelantado
  #2 (permalink)  
Antiguo 28/09/2007, 14:04
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: No puedo llamar a una funcion desde dentro de otra

Prueba de esta forma:
Código PHP:
if((test_subcat($row['id'])) && ($id==$row['id'])){//<---- aquí está la susodicha 
  
despliegue($row['id']); 

__________________

  #3 (permalink)  
Antiguo 28/09/2007, 15:31
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: No puedo llamar a una funcion desde dentro de otra

¿A que te referís con que no te "devuelve nada"?
Por otro lado, los return detienen la ejecución de la función, así que deberías cambiarla para que se ejecuten los echo y el free_result
Tampoco estabas pasando la query como parametro a la función mysql_num_rows, así que la interpretaba como constante (y al no estar definida como el string "mysql_num_rowS") cosa que está mal...

Código PHP:
 function test_subcat($id){
    global 
$con;
    
$sql "select * from categorias where identificador='$id'";
    
$rs mysql_query($sql$con);
    if(
mysql_num_rows($rs) > 0){
        echo 
"Ha devuelto verdadero";
        
mysql_free_result($rs);
        return 
true;
        }
    else{
        echo 
"Ha devuelto falso";
        
mysql_free_result($rs);
        return 
false;
        }

  #4 (permalink)  
Antiguo 28/09/2007, 15:52
Avatar de hvpareja  
Fecha de Ingreso: marzo-2007
Ubicación: En Vélez Málaga (Málaga)
Mensajes: 213
Antigüedad: 17 años, 1 mes
Puntos: 4
Re: No puedo llamar a una funcion desde dentro de otra

muchas gracias a los dos pero el problema era únicamente lo que señalaba Seppo, que me comí el ($rs) en mysql_num_rows... lo de los echos lo descubrí poco después y lo solucioné con lo que pude comprobar que siempre me devolvía falso y no podía entender por qué...

bueno muchas gracias
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 17:38.