Foros del Web » Programando para Internet » PHP »

Problema con funcion

Estas en el tema de Problema con funcion en el foro de PHP en Foros del Web. Les dejo aca la funcion Código PHP: function  sexo ()     {      $rSexo  =  mysql_query ( "SELECT * FROM ranking" ) or die( mysql_error ());      $fila  =  mysql_fetch_array ( ...
  #1 (permalink)  
Antiguo 13/02/2008, 02:06
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 0
Problema con funcion

Les dejo aca la funcion
Código PHP:
function sexo()
    {
    
$rSexo mysql_query("SELECT * FROM ranking") or die(mysql_error());
    
$fila mysql_fetch_array($rSexo);

    if(
$fila["sexo"] == "0")
        {
        return 
"NA";
        }
        else
        {
        if(
$fila["sexo"] == "1")
            {
            return 
"Masculino";
            }
            else
            {
            if(
$fila["sexo"] == "2")
                {
                return 
"Femenino";
                }
            }
        }
    } 
Y aca es donde lo llamo:
Código PHP:
$r mysql_query("SELECT * FROM ranking ORDER BY id DESC");

while(
$row mysql_fetch_array($rMYSQL_ASSOC))
{

echo 
'
        <TR>
                <td>'
.$row["Id"].'</td>
                <td>'
.$row["usuario"].'</td>
                <td>'
.$row["email"].'</td>
                <td>'
.$row["equipo"].'</td>
                <td>'
.sexo().'</td>
                <td>'
.$row["nacionalidad"].'</td>
        </TR>
        '
;

La cuestion es que la tabla anda bien, pero en Sexo aparece siempre NA :s

Alguien me da una mano? Gracias!

Última edición por frean; 13/02/2008 a las 07:34
  #2 (permalink)  
Antiguo 13/02/2008, 02:45
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Re: Problema con funcion

En la funcion sexo() solo se lee SIEMPRE el primer registro devuelto por la consulta a la tabla RANKING, y mira en ese registro el valor del campo SEXO.

Me da que eso no es lo que querias hacer.
  #3 (permalink)  
Antiguo 13/02/2008, 07:33
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Problema con funcion

Cita:
Iniciado por DarkJ Ver Mensaje
En la funcion sexo() solo se lee SIEMPRE el primer registro devuelto por la consulta a la tabla RANKING, y mira en ese registro el valor del campo SEXO.

Me da que eso no es lo que querias hacer.
Entonces sugeris que use num_rows?

Es raro porque en teoria yo arme un array con todos los valores...
  #4 (permalink)  
Antiguo 13/02/2008, 09:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema con funcion

Lo que deberías de hacer (para no hacer múltiples consultas) es directamente:
Código PHP:
function sexo($valor)
    {

    if(
$valor == "0")
        {
        return 
"NA";
        }
        else
        {
        if(
$valor == "1")
            {
            return 
"Masculino";
            }
            else
            {
            if(
$valor == "2")
                {
                return 
"Femenino";
                }
            }
        }
    } 
y le pasas el valor en tu while:
Código PHP:
$r mysql_query("SELECT * FROM ranking ORDER BY id DESC");

while(
$row mysql_fetch_array($rMYSQL_ASSOC))
{

echo 
'
        <TR>
                <td>'
.$row["Id"].'</td>
                <td>'
.$row["usuario"].'</td>
                <td>'
.$row["email"].'</td>
                <td>'
.$row["equipo"].'</td>
                <td>'
.sexo($row['sexo']).'</td>
                <td>'
.$row["nacionalidad"].'</td>
        </TR>
        '
;

Saludos.
  #5 (permalink)  
Antiguo 13/02/2008, 09:57
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Problema con funcion

Muchas gracias viejo! Ahi lo solucionaste :)
Se agradece
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 15:49.