Foros del Web » Programando para Internet » PHP »

Reciclando funcion dentro de otra función

Estas en el tema de Reciclando funcion dentro de otra función en el foro de PHP en Foros del Web. Hola tengo dos funciones y estoy intentando que la segunda use el resultado que da la primera función, lo que no se es como pasarselo ...
  #1 (permalink)  
Antiguo 10/11/2004, 12:28
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta Reciclando funcion dentro de otra función

Hola tengo dos funciones y estoy intentando que la segunda use el resultado que da la primera función, lo que no se es como pasarselo ya que cuando lo hago no me funciona. Saludos

Código PHP:
Muestra el nombre de un gráfico a partir de su id
function muestra_nombre_gfx($id) {
  
open();
  
$query "SELECT id,grafico FROM imagenes WHERE id='$id'";
  
$result mysql_query($query) or die(mysql_error());
while(
$row mysql_fetch_array($result)) {
   echo 
$row["grafico"];
}
mysql_free_result($result);
}

// Llamo a la función y muestra siempre un solo resultado por ejemplo: prueba.jpg
muestra_nombre_gfx($id);

// Lo que quiero es poder usar el resultado anterior dentro de esta función:
function muestra_usuario($nombre_gfx) {
  
open();
  
$query "SELECT usuarios.alias FROM usuarios INNER JOIN imagenes ON (usuarios.id = imagenes.cod_usuario) WHERE imagenes.grafico='$nombre_gfx'";
  
$result mysql_query($query) or die(mysql_error());
  while(
$row mysql_fetch_array($result)) {
   echo 
$row["alias"];
}
mysql_free_result($result);
}

/* En teoría esto debería funcionar pero sólo me muestra 2 veces prueba.jpg y no 
el nombre de usuario  supongo que porque no recoge el valor de la 
función anterior*/

muestra_usuario(muestra_nombre_gfx($id)); 
  #2 (permalink)  
Antiguo 10/11/2004, 12:35
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
tienes que hacer que la funcion: muestra_nombre_gfx($id) devuelva un valor, asi:

function muestra_nombre_gfx($id) {
$algo="algo";
open();
$query = "SELECT id,grafico FROM imagenes WHERE id='$id'";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)) {
echo $row["grafico"];
}
mysql_free_result($result);
return $algo;
}
  #3 (permalink)  
Antiguo 10/11/2004, 12:46
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 14 años, 1 mes
Puntos: 0
Gracias claudiovega como siempre, me fijo que le metes un "return" imagino que para que la función devuelva un valor, lo que no entiendo es lo que hace la línea:

Código PHP:
 $algo="algo"
¿Qué valor es algo? (en teoría me lo tiene que dar la función y no ponerselo yo no?
  #4 (permalink)  
Antiguo 10/11/2004, 12:55
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
significa que $algo debe tener el valor a devolver, de lo contrario no se devuelve nada. No encontré en tu codigo donde asiganarle un valor a $algo, de ahi que lo haya puesto asi, pero ya tu sabras en donde obtiene un valor valido para devolver y pasarselo a una variable y que esa variable (su valor) sea devuelta por la funcion via return

ejemplo:

function suma($a,$b)
{
$suma=null;
$suma=$a+$b;
return $suma;
}

se entiende mejor ahi?
  #5 (permalink)  
Antiguo 10/11/2004, 13:00
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 14 años, 1 mes
Puntos: 0
Ahora si te entendí con el mini ejemplo que pusiste ahora entiendo a que te referías, ¡muchas gracias Claudio!

Saludos
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:41.