Foros del Web » Programando para Internet » PHP »

he intentado alternar dos colores en las filas de esta consulta pero no puedo

Estas en el tema de he intentado alternar dos colores en las filas de esta consulta pero no puedo en el foro de PHP en Foros del Web. quiero alternar en las filas que me despliega esta consulta dos colores pero no lo he podido hacer (incluso he mirado las faq que tiene ...
  #1 (permalink)  
Antiguo 17/10/2006, 14:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 7 meses
Puntos: 0
he intentado alternar dos colores en las filas de esta consulta pero no puedo

quiero alternar en las filas que me despliega esta consulta dos colores pero no lo he podido hacer (incluso he mirado las faq que tiene la solucion pero a mi no me camina). Si alguien me puede tirar algunas lineas se los agradezco

El codigo es el siguiente:

Código PHP:
<?
    
include("config.php");
    
$link=conectar_BD();
?>
<html>
<head>
<title>Compras Productos</title>
<LINK href="estilo.css" type=text/css rel=stylesheet>
<SCRIPT language=JavaScript src="javascript.js"></SCRIPT>
</head>
<body class="body">
<?
    $result
=mysql_query("SELECT * FROM $name_tb[productos]");

    while (
$row mysql_fetch_array($result)) {
        echo 
"
                <table>
                 <tr>
                    <td class='textochico' valign='middle'> 
                        <input name='cantidad' type='text' size='5' maxlength='5'>
                    </td>
                       <td class='textochico'>
                        <img src='/ult/fotos/$row[comprar]'>
                    </td>
                    <td class='textochico'> 
                        $row[articulo]
                    </td>
                      <td class='textochico'>
                        $$row[p_12]
                    </td>
                      <td class='textochico'>
                        <img src='/ult/fotos/$row[ruta]'>
                    </td>
                      <td class='textochico'>
                        <img src='/ult/fotos/$row[foto]'>
                    </td>
                      <td class='textochico'>
                        <img src='/ult/fotos/$row[info]'>
                    </td>                            
                </tr>
                </table>
                    "
;
    }
    
mysql_free_result($result);
    
mysql_close($link);
?>
</body>
</html>
Desde ya muchas gracias
  #2 (permalink)  
Antiguo 17/10/2006, 15:17
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
y si intentas poniendo tu codigo de esta forma:

Código PHP:
$result=mysql_query("SELECT * FROM $name_tb[productos]");  

while (
$row mysql_fetch_array($result)) 
{  
   
$contador 1;
   
$tuarray = array ('<img src='/ult/fotos/$row[comprar]'>','$row[articulo]','$$row[p_12]','<img src='/ult/fotos/$row[ruta]'>','<img src='/ult/fotos/$row[foto]'>','<img src='/ult/fotos/$row[info]'>');

   echo 
"<table><tr><td class=$color valign='middle'><input name='cantidad' type='text' size='5' maxlength='5'></td>";

   for ( 
$e 0; $ < count $tuarray ); $e++ )
   {
      if ( 
$contador == 
      { 
         
$color 'otraclase'// aqui colocas el otro color
         
$contador 1
      }

      
$color 'textochico';

      echo 
"<td class=$color>".$tuarray[$e]."</td>";

      
$contador += 1;
   }

   echo 
"</tr></table>";


    
mysql_free_result($result);  
    
mysql_close($link); 
esto suponiendo que 'textochico' es el color. Espero que esto te sirva o por lo menos te de una idea. Suerte

Última edición por Erikfrancisco; 18/10/2006 a las 10:35
  #3 (permalink)  
Antiguo 18/10/2006, 11:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 7 meses
Puntos: 0
tu sabes que no me toma el cambio del color

Me sigue pintando en un solo color, para mi el problema es el if, es mas siempre toma el ultimo color
Código PHP:
      if ( $contador == 
      { 
         
$color 'otraclase'// aqui colocas el otro color
         
$contador 1
      }

      
$color 'textochico'// siempre toma este color 
Creo que si lo analizamos bien siempre toma el ultimo valor, creo yo no???, bueno siguo en la busqueda
  #4 (permalink)  
Antiguo 18/10/2006, 11:22
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Tienes razon sólo corrige el if de esta forma:

Código PHP:
      if ( $contador == )  
{  
   
$color 'otraclase'// aqui colocas el otro color 
   
$contador 1;  

else
{
   
$color 'textochico';

Y si aún así no te funciona coloca la variable $contador fuera del while. Suerte
  #5 (permalink)  
Antiguo 18/10/2006, 12:40
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 7 meses
Puntos: 0
me da el siguiente error (problemas en las comillas) pero yo no lo veo

parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')'

en esta linea (para mi esta bien)

Código PHP:
$tuarray = array ('<img src='/ult/fotos/$row[comprar]'>','$row[articulo]','$$row[p_12]','<img src='/ult/fotos/$row[ruta]'>','<img src='/ult/fotos/$row[foto]'>','<img src='/ult/fotos/$row[info]'>'); 
y bueno seguimos
  #6 (permalink)  
Antiguo 18/10/2006, 12:45
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Exacto, se estan anidando comillas simples dentro de comillas simples en el array, cambial el contenido del array escapando las comillas simples de esta forma:

'<img src=\'/ult/fotos/$row[comprar]\'>'

Quedando tu array de esta manera:

Código PHP:
$tuarray = array ('<img src=\'/ult/fotos/$row[comprar]\'>','$row[articulo]','$$row[p_12]','<img src=\'/ult/fotos/$row[ruta]\'>','<img src=\'/ult/fotos/$row[foto]\'>','<img src=\'/ult/fotos/$row[info]\'>'); 
o en lugar de las comillas simples que encierran los elementos del array pon comillas dobles:

"<img src='/ult/fotos/$row[comprar]'>"

y el array quedaría así:

Código PHP:
$tuarray = array ("<img src='/ult/fotos/$row[comprar]'>","$row[articulo]","$$row[p_12]","<img src='/ult/fotos/$row[ruta]'>","<img src='/ult/fotos/$row[foto]'>","<img src='/ult/fotos/$row[info]'>"); 
Nota: esto es con todos los elementos del array. Suerte
  #7 (permalink)  
Antiguo 18/10/2006, 13:15
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 7 meses
Puntos: 0
hice unos cambios copiando algo que tenia en otro script

Me dio mejores resultados

quedo asi:

Código PHP:
<?
    
include("config.php");
    
$link=conectar_BD();
?>
<html>
<head>
<title>Compras Productos</title>
<LINK href="estilo.css" type=text/css rel=stylesheet>
<SCRIPT language=JavaScript src="javascript.js"></SCRIPT>
</head>
<body class="body">
<?

$result
=mysql_query("SELECT * FROM $name_tb[productos]"); 

    if (
$row mysql_fetch_array($result))
    {
        echo 
"<table border=0 cellpadding=0 cellspacing=0> \n";
        
$color='#FFC299';
            do { 
                 echo 

                     <tr bgcolor=\"$color\"> 
                        <td valign='middle'>  
                            <input name='cantidad' type='text' size='5' maxlength='5'> 
                           </td> 
                           <td> 
                            <img src='/ult/fotos/$row[comprar]'> 
                        </td> 
                        <td>  
                            $row[articulo] 
                        </td> 
                          <td> 
                            $$row[p_12] 
                        </td> 
                          <td> 
                            <img src='/ult/fotos/$row[ruta]'> 
                        </td> 
                          <td bgcolor=$color> 
                            <img src='/ult/fotos/$row[foto]'> 
                        </td> 
                          <td bgcolor=$color> 
                            <img src='/ult/fotos/$row[info]'> 
                        </td>                             
                    </tr> 
                    "

                
$color=('#F0F0F0'==$color)?'FFC299':'#F0F0F0';
                } while (
$row mysql_fetch_array($result));
             
               echo 
"</table> \n"
        } else { 
            echo 
"¡ No se ha encontrado ningún registro !"
        }         

    
mysql_free_result($result); 
    
mysql_close($link);  
?>
</body>
</html>
gracias igual por la valiosa ayuda, hasta la proxima
  #8 (permalink)  
Antiguo 18/10/2006, 14:38
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 6 meses
Puntos: 16
De acuerdo Mira yo hago si

Holas, mira man yo hago esto y me funciono
Código PHP:
?php
            $color 
1;       
               while(
$row mysql_fetch_array($mostrart))
            {    
                if ( 
$color%2==0)
                {echo 
"<tr bgcolor=#FFFFFF>";
                
$color=$color+1;}
                else
                {echo 
"<tr bgcolor=#FFFFCC>";
                
$color=$color+1;}
             echo 
"<td>".$row["Cantidad"]."</td>"
              echo 
"<td>".$row["Densidad"]."</td>"
              echo 
"<td>".$row["Dimensiones"]."</td>"
             echo 
"<td><a href='addpedidoe.php?id=".$row['id_de_Pedido']."'>Editar</a></td> ";
              echo 
"<td><a href='borra.php?id=".$row['id_de_Pedido']."'>Borrar</a></td> ";              
              } 
             echo 
"</tr>"
             
mysql_free_result($mostrart); 
           
//mysql_close($link);  
            
?> 
Espero q sea de ayuda
  #9 (permalink)  
Antiguo 15/02/2007, 09:29
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: he intentado alternar dos colores en las filas de esta consulta pero no puedo

Muy Buen codigo y bien sencillo para aprendices como yo gracias ...tio
  #10 (permalink)  
Antiguo 15/02/2007, 10:12
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: he intentado alternar dos colores en las filas de esta consulta pero no puedo

Hazlo tambien con estilo, hice rapidamente el siguiente CSS, creo que puede mejorarse bastante pero el resultado que obtienes es bueno:
Código PHP:
.tablaAlterno1    {background-color#F4F8FF; height:21px;}
.tablaAlterno2    {background-color#FFFFFF; height:21px;}
.tablaAlterno1.oddtablaAlterno2.oddS    {background-color#ebf3ff;}
.tablaAlterno1 a    {color#000000;}
.tablaAlterno2 a    {color#000000;}
.tablaAlterno1:hover a    {color#CC0000;}

.tablaAlterno2:hover a    {color#CC0000;}

.tablaAlterno1:hovertablaAlterno1.odd:hover    {background-color:#FFD595;    color: #ffffff;}
.tablaAlterno2:hovertablaAlterno2.odd:hover    {background-color#FFD595;    color: #ffffff;} 
Luego el codigo PHP:
Código PHP:
<table width="70%" align="center" border="1">
    <tr align ="center">
        <th >Col 1</th>                            
        <th >Col 2</th>
        <th >col 3</th>          
    <tr>
<?php 

$color 
'tablaAlterno1';

while (
$reg $result->fetch_object()){
    
$color = ($color == 'tablaAlterno1') ? 'tablaAlterno2' 'tablaAlterno1';
    
?>
        <tr class="<?php echo $color?>">
                
            <td><?php echo $reg->campo1 ?></td>
                
            <td><?php echo $reg->campo2 ?></td>
                
            <td><?php echo $reg->campo3 ?></td>                                    
        </tr>    
    <?php
    
}
   
?>
</table>
Aparte de que te pinta las filas con colores alternos, cuando pasas el mouse por encima estas cambian de color.

Nota: asumo que tienes ya hecha la consulta.
Nota 2: Uso la sintaxis orientada a objetos de mysqli

Última edición por gvargas; 15/02/2007 a las 10:14 Razón: errors de 'dedo'
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 14:35.