Foros del Web » Programando para Internet » PHP »

Llamada a una funcion

Estas en el tema de Llamada a una funcion en el foro de PHP en Foros del Web. hola buenas estoy intentando mostrar los datos de una consulta en una tabla alternando los colores de cada dato y para ahorrarme codigo he creado ...
  #1 (permalink)  
Antiguo 01/11/2008, 18:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Llamada a una funcion

hola buenas estoy intentando mostrar los datos de una consulta en una tabla alternando los colores de cada dato y para ahorrarme codigo he creado una funcion introducecampos()

Código PHP:
function introducecampos(){
                                        echo 
"<td> $row[Nombre] </td>
                                                     <td> $row[Localidad] </td>
                                                     <td> $row[Direccion] </td>
                                                     <td> $row[CP] </td>
                                                     <td> $row[Telefono] </td>
                                                     <td> <a href='../campus/?accion=alta'><img src='../img/nuevo.png' title='Nuevo'></a> 
                                                     <a href='../campus/?accion=editar&id=$row[idCampus]'><img src='../img/editar.png' title='Editar'></a>
                                                     <a href='../campus/?accion=borrar&id=$row[idCampus]'><img src='../img/borrar.png' title='Borrar'></a></td>"
;
                                    } 
y luego la quiero usar aqui

Código PHP:
$cont=0;
                                while(
$row=mysql_fetch_array($result)){
                                    if (
$cont%2==0){ //para alternar el color de fondo de cada linea en la tabla
                                        
                                            
echo "<tr style='background:#d7ffd7;'>";
                                                    
introducecampos();
                                            echo 
"</tr>";
                                        }else{
                                            echo 
"<tr>";
                                                    
introducecampos();
                                            echo 
"</tr>";
                                        } 
no me carga los datos. A que se debe??

Gracias
  #2 (permalink)  
Antiguo 01/11/2008, 18:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 102
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Llamada a una funcion

Porque en la funcion no tiene valor esas variables

Trata
if($cont%2==0)
{
$color="#color1";
}
else
{
$color="#color2";
}

y despues muestras lo datos y en el <tr> poner un bgcolor=$color
  #3 (permalink)  
Antiguo 01/11/2008, 18:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Llamada a una funcion

Hola miguelaniez,

Tienes que hacer una de dos cosas, o declaras $row como global dentro de tu función o la pasas como parámetro a tu función.

Saludos.
  #4 (permalink)  
Antiguo 01/11/2008, 18:30
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Llamada a una funcion

Hola,
Intenta con:
Código PHP:
function introducecampos($row){ 
                                        echo 
"<td> $row[Nombre] </td> 
                                                     <td> $row[Localidad] </td> 
                                                     <td> $row[Direccion] </td> 
                                                     <td> $row[CP] </td> 
                                                     <td> $row[Telefono] </td> 
                                                     <td> <a href='../campus/?accion=alta'><img src='../img/nuevo.png' title='Nuevo'></a>  
                                                     <a href='../campus/?accion=editar&id=$row[idCampus]'><img src='../img/editar.png' title='Editar'></a> 
                                                     <a href='../campus/?accion=borrar&id=$row[idCampus]'><img src='../img/borrar.png' title='Borrar'></a></td>"

                                    } 
y
Código PHP:
$cont=0
                                while(
$row=mysql_fetch_array($result)){ 
                                    if (
$cont==0){ //para alternar el color de fondo de cada linea en la tabla 
                                         
                                            
echo "<tr style='background:#d7ffd7;'>"
                                                    
introducecampos($row); 
                                            echo 
"</tr>";
 
$cont++;
                                        }else{ 
                                            echo 
"<tr>"
                                                    
introducecampos($row); 
                                            echo 
"</tr>"
$cont=0;
                                        } 
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #5 (permalink)  
Antiguo 01/11/2008, 18:37
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Llamada a una funcion

Deberías pasar la variable $row como parámetro para que sea visible dentro de la función.
Por otro lado, deberías entrecomillar el nombre de los índices en ese array.

Y aunque no tenga nada que ver... todo esto:

Código PHP:
if ($cont&#37;2==0){ //para alternar el color de fondo de cada linea en la tabla
                                        
    
echo "<tr style='background:#d7ffd7;'>";
    
introducecampos();
    echo 
"</tr>";
}else{
    echo 
"<tr>";
    
introducecampos();
    echo 
"</tr>";

podrías cambiarlo por esto otro que hace exactamente lo mismo:

Código PHP:
echo "<tr" . ( !($cont%2) ? " style='background:#d7ffd7;'" "" ) . ">";
introducecampos();
echo 
"</tr>"
Un saludo.

Última edición por Deschamps; 01/11/2008 a las 18:39 Razón: Juer... soy el más lento con diferencia :)
  #6 (permalink)  
Antiguo 01/11/2008, 18:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Llamada a una funcion

Gracias a todos por vuestra ayuda

Deschamps a q te refieres con 'deberías entrecomillar el nombre de los índices en ese array.' y porque? no te entendi bien, llevo poquito con esto sry

Un saludo
  #7 (permalink)  
Antiguo 01/11/2008, 19:11
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Llamada a una funcion

Cita:
Iniciado por miguelaniez Ver Mensaje
Deschamps a q te refieres con 'deberías entrecomillar el nombre de los índices en ese array.' y porque? no te entendi bien, llevo poquito con esto sry

Del manual: "Siempre deben usarse comillas alrededor de un índice de matriz tipo cadena literal. Por ejemplo, $foo['bar'] es correcto, mientras que $foo[bar] no lo es. ¿Pero porqué? Es común encontrar este tipo de sintaxis en scripts viejos: (...) " y continúa con más explicaciones y ejemplos.

Un saludo.
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 12:12.