Foros del Web » Programando para Internet » PHP »

recorrer con fororeach y diferenciar impar de par

Estas en el tema de recorrer con fororeach y diferenciar impar de par en el foro de PHP en Foros del Web. Hola tengo este codigo: Código PHP: <?php  $arruser  = array(); $sel  =  "SELECT * FROM usuarios ORDER BY id DESC LIMIT 10" ;   $resultado  =  mysql_query  ( $sel ,  $dbConn ); while (  $row  =  mysql_fetch_assoc  ...
  #1 (permalink)  
Antiguo 13/08/2011, 17:32
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 11 años, 9 meses
Puntos: 9
Pregunta recorrer con fororeach y diferenciar impar de par

Hola tengo este codigo:

Código PHP:
<?php 
$arruser 
= array();
$sel "SELECT * FROM usuarios ORDER BY id DESC LIMIT 10";  
$resultado mysql_query ($sel$dbConn);
while ( 
$row mysql_fetch_assoc ($resultado)) {
    
array_push$arruse,$row );
}
?>
<? 
foreach ( $arruser as $usuario ) { ?>

<div id="estilo1"><? echo $usuario['nombre']</div>

<? } 
?>
Esto lo que haria seria recorrer la tabla usuarios y mostrar los ultimos 10 usuarios.
Ahora mi pregunta como puedo hacer para que cuando pase de un usuario a otro se diferencie el div para poder cambiar el estilo y que no sea todo el mismo. Me explico con este ejemplo que vale mas q mil palabras:


<div id="estilo1">jorge</div>
<div id="estilo2">juan</div>
<div id="estilo1">gustavo</div>
<div id="estilo2">matias</div>
<div id="estilo1">pedro</div>
  #2 (permalink)  
Antiguo 13/08/2011, 17:58
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 11 años, 6 meses
Puntos: 72
Respuesta: recorrer con fororeach y diferenciar impar de par

Puedes usar una variable fuera del foreach, e ir aumentando esta en el bucle para luego determinar si se trata de un número par o no y asignar el estilo adecuado. Algo como esto funciona.

Código PHP:
Ver original
  1. <?php
  2. $nombres= array("juan","jose","german","sotero","tomas","fermin","gonzalo","felipe","martin","pedro");
  3.  
  4. $actual= 0;
  5.  
  6. foreach($nombres as $escribe)
  7. {
  8. $actula++;
  9.  
  10. if($actula%2!=0)
  11. $estilo= "estilo1";
  12. else
  13. $estilo= "estilo2";
  14.  
  15. echo "<div class=".$estilo.">".$escribe."</div>\n";
  16. }
  17. ?>
  #3 (permalink)  
Antiguo 13/08/2011, 18:15
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: recorrer con fororeach y diferenciar impar de par

Disculpame, aca if($actula%2!=0) quisiste poner if($actual!=0) ?
  #4 (permalink)  
Antiguo 13/08/2011, 18:57
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 11 años, 6 meses
Puntos: 793
Respuesta: recorrer con fororeach y diferenciar impar de par

Que tal hackcrack primero que todo el uso de la función array_push está desanconsejado si es sólo para un elemento:

Cita:
Note: Si se utiliza array_push() para añadir un solo elemento en el array, es mejor utilizar $array[] = ya que de esta forma no existe la sobrecarga de llamar a una función.
No necesitas más de un bucle para hacer eso y te dejo un ejemplo rápido:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $c = mysql_connect('localhost', 'root', '12345');
  4. mysql_select_db('basededatos');
  5. $sql = 'select * from persona';
  6. $res = mysql_query($sql);
  7. $x = 0;
  8.  
  9. while ($reg = mysql_fetch_array($res)) {
  10.     if ($x % 2 == 0) {
  11.         echo '<font color="#f00">' . $reg['nombre'] . '</font><br />';
  12.     } else {
  13.         echo '<font color="#000">' . $reg['nombre'] . '</font><br />';
  14.     }
  15.     $x++;
  16. }

Ahora tu duda $x % 2 == 0, esto lo que hace es comprobar si el número es par, como lo hace... Comprobando si es múltiplo de 2 porque al operar va a dar cero.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 13/08/2011, 19:02
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 13 años, 8 meses
Puntos: 322
Respuesta: recorrer con fororeach y diferenciar impar de par

No, % devuelve el residuo de una división:
Tomando el ejemplo, digamos que $actual es 2:
Código PHP:
Ver original
  1. echo $actual%2 // Esto da 0, entonces es par
Si actual fuera 3..
Código PHP:
Ver original
  1. echo $actual%2 // Esto daría el residuo que NO es 0, entonces es impar
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 13/08/2011, 19:05
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 11 años, 6 meses
Puntos: 793
Respuesta: recorrer con fororeach y diferenciar impar de par

eso @Sourcegeek gracias se me hacen duras las definiciones pero se que hacen
xD Bendito modulo.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 13/08/2011 a las 19:38 Razón: :$ falta leer definiciones
  #7 (permalink)  
Antiguo 13/08/2011, 19:57
Avatar de hackcrack  
Fecha de Ingreso: abril-2011
Mensajes: 331
Antigüedad: 11 años, 9 meses
Puntos: 9
Respuesta: recorrer con fororeach y diferenciar impar de par

Gracias a los dos por la gran ayuda brindada, ya mismo lo implemento :)
  #8 (permalink)  
Antiguo 13/08/2011, 21:46
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 11 años, 10 meses
Puntos: 116
Respuesta: recorrer con fororeach y diferenciar impar de par

Cita:
Iniciado por Sourcegeek Ver Mensaje
No, % devuelve el residuo de una división:
Tomando el ejemplo, digamos que $actual es 2:
Código PHP:
Ver original
  1. echo $actual%2 // Esto da 0, entonces es par
Si actual fuera 3..
Código PHP:
Ver original
  1. echo $actual%2 // Esto daría el residuo que NO es 0, entonces es impar
practicamente ambos @andresdzphp y @sourcegeek estaban en lo correcto.
source te dio la definicion correcta, aunque andrez tambien dio una afirmacion a la funcion, ya que practicamente eso es lo que hace, todos los impares daran un residio no 0, y los pares un residuo 0.

__________________
Programador jQuery & PHP

Etiquetas: impar, mysql, par, recorrer, tabla, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:48.