Foros del Web » Programando para Internet » PHP »

como aplicarle una clase especifica a una consulta array

Estas en el tema de como aplicarle una clase especifica a una consulta array en el foro de PHP en Foros del Web. Buenas estimados como estan! necesito saber como puedo realizar lo siguiente: tengo una tabla con articulos y fecha de cada uno. Para buscarlos realizo una ...
  #1 (permalink)  
Antiguo 11/07/2011, 12:14
 
Fecha de Ingreso: diciembre-2001
Ubicación: Argentina
Mensajes: 693
Antigüedad: 22 años, 4 meses
Puntos: 1
como aplicarle una clase especifica a una consulta array

Buenas estimados como estan! necesito saber como puedo realizar lo siguiente:

tengo una tabla con articulos y fecha de cada uno. Para buscarlos realizo una consulta de tipo array por año entonces me enumera todos los años de los articulos en un menu a la izquierda. Ej, 2011 - 2010 - 2009 etc Al hacerle click a este, a la derecha me aparece los articulos que hay dentro de ese año.

Código:
		<?php
$resultado = mysql_query("SELECT DISTINCT year FROM articulos ORDER BY year DESC",$conexion); 
while ($linea = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
   echo "<a href='?year=".$linea['year']."' class='fechaart'> ".$linea['year']."</a> -";
   }
mysql_free_result($resultado);
?>
Mi pregunta es que a la linea <a href='?year=2001' class='fechaart'>2001</a> cuando la seleccione en el menu de la izquierda me quede seleccionado con un class='selected' Pero no se como hacerlo quizas con un if pero me parece que de esta manera no es la correcta
  #2 (permalink)  
Antiguo 11/07/2011, 13:18
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: como aplicarle una clase especifica a una consulta array

Podría ser algo así:


Código PHP:
Ver original
  1. <?php
  2. $resultado = mysql_query("SELECT DISTINCT year FROM articulos ORDER BY year DESC",$conexion);
  3.  
  4. while ($linea = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
  5.    
  6.     if(isset($_GET['years']))
  7.     {
  8.        
  9.       if($_GET['years']==$linea['year'])
  10.       {
  11.          $clase = 'selected';
  12.       }
  13.      
  14.     }else{
  15.        
  16.          $clase = 'fechaart';
  17.     }
  18.        
  19.        
  20.  echo "<a href='?year=".$linea['year']."' class='".$clase."'> ".$linea['year']."</a> -";
  21.  
  22.    
  23.    }
  24. mysql_free_result($resultado);
  25. ?>

Por favor probalo y decime si lo entendiste

Saludos



.
__________________
la la la
  #3 (permalink)  
Antiguo 11/07/2011, 13:28
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: como aplicarle una clase especifica a una consulta array

puedes usar una variable de comparacion
Cita:
<?php
$clase="fechaart";//tu css actual
$resultado = mysql_query("SELECT DISTINCT year FROM articulos ORDER BY year DESC",$conexion);
while ($linea = mysql_fetch_array($resultado, MYSQL_ASSOC))
{
if($linea['year']==$_GET['year'])
{
$clase="selecionado";//donde seleccionado es algun css diferente
}
echo "<a href='?year=".$linea['year']."' class='".$clase."'> ".$linea['year']."</a> -";
}
mysql_free_result($resultado);
?>
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #4 (permalink)  
Antiguo 11/07/2011, 13:50
 
Fecha de Ingreso: diciembre-2001
Ubicación: Argentina
Mensajes: 693
Antigüedad: 22 años, 4 meses
Puntos: 1
Respuesta: como aplicarle una clase especifica a una consulta array

Muchachos lamentablemente no me esta funcionando, entiendo el concepto ahora como deberia ser pero al parecer hay algo que no esta tomando bien! Tienen alguna idea que puede ser? Muchas gracias!
  #5 (permalink)  
Antiguo 11/07/2011, 13:52
 
Fecha de Ingreso: diciembre-2001
Ubicación: Argentina
Mensajes: 693
Antigüedad: 22 años, 4 meses
Puntos: 1
Respuesta: como aplicarle una clase especifica a una consulta array

la variable ($_get['years'] de dnd la esta tomando si yo no la tengo en la tabla?
  #6 (permalink)  
Antiguo 11/07/2011, 13:57
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: como aplicarle una clase especifica a una consulta array

-que error te marca?

-q codigo tienes ahora?

-estas definiendo las dos clases?


-prueba poniendo directamente las clases, es decir, en vez de:

echo "<a href='?year=".$linea['year']."' class='".$clase."'> ".$linea['year']."</a> -";

pones..

echo "<a href='?year=".$linea['year']."' class='fechaart'> ".$linea['year']."</a> -";

y/o la otra clase

echo "<a href='?year=".$linea['year']."' class='seleccionada'> ".$linea['year']."</a> -";
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #7 (permalink)  
Antiguo 11/07/2011, 14:01
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: como aplicarle una clase especifica a una consulta array

tengo entendido que :

echo "<a href='?year=".$linea['year']."' class='seleccionada'> ".$linea['year']."</a> -";

es una liga a tu pagina donde envias una variable llamada year por metodo get con valor ($linea['year']) de ahi sale el $_GET['year'](es donde lees esa variable)
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #8 (permalink)  
Antiguo 11/07/2011, 14:02
 
Fecha de Ingreso: diciembre-2001
Ubicación: Argentina
Mensajes: 693
Antigüedad: 22 años, 4 meses
Puntos: 1
Respuesta: como aplicarle una clase especifica a una consulta array

Listo muchisimas gracias!!! hice una mezcla de sus dos codigos y me funciona a la perfeccion! he aqui muchas gracias por la ayuda.Ahora veo que habia que comparar el resultado de la consulta con el campo year y si eran iguales aplicarle la clase!

<?php
$resultado = mysql_query("SELECT DISTINCT year FROM articulos ORDER BY year DESC",$conexion);

while ($linea = mysql_fetch_array($resultado, MYSQL_ASSOC)) {





if($linea['year']==$_GET['year']){
$clase="selected";//donde seleccionado es algun css diferente
}else{
$clase="fechaart";
}

echo "<a href='?year=".$linea['year']."' class='".$clase."'> ".$linea['year']."</a><br>";



}
mysql_free_result($resultado);
?>
  #9 (permalink)  
Antiguo 11/07/2011, 21:19
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: como aplicarle una clase especifica a una consulta array

Ok, perfecto, fijate que el codigo que te puse, es casi igual al tuyo, lo único que le agregé es el


if(isset($_GET['years']))


para comprobar que efectivamente se está recibiendo la variable por get, en ese caso se hace la comparacion , sino (else) la clase es fechaart

En algunos servidores te puede dar algun tipo de error al no reconocer a $_GET['year'], ya que al ingresar a esa pagina por primera vez , no habrá valor por get.

Espero que se entienda
Saludos

.
__________________
la la la

Etiquetas: clase, especifica, mysql, tabla
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 10:39.