Foros del Web » Programando para Internet » PHP »

Programación para mostrar una caracteristica cada tres resultados

Estas en el tema de Programación para mostrar una caracteristica cada tres resultados en el foro de PHP en Foros del Web. Hola a todos, Amigos necesito su ayuda, estoy editando una plantilla, hago consultas a la base de datos donde cadda resultado va dentro de un ...
  #1 (permalink)  
Antiguo 23/08/2013, 17:59
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Exclamación Programación para mostrar una caracteristica cada tres resultados

Hola a todos, Amigos necesito su ayuda, estoy editando una plantilla, hago consultas a la base de datos donde cadda resultado va dentro de un div <div class="product"> y todos los demás resultados tendran ese <div class="product"> ya que esta dentro del echo. ahora mi problema es que el tercer resultado que muestre el div debe ser <div class="pr-entry"> y despues de cerrar ese div tengo q poner <div class="cl">&nbsp;</div> para que haga como un salto de linea y asi muestre resultados en filas de a 3. ya que si a todos los resultados le pongo <div class="product"> se me desarma la pagina. ESPERO ME HAYGAN ENTENDIDO en sintesis que cada tercer resultado deseo modificar el class del div AYUDENME PORFA QUE ESTOY CON LA SOGA EN EL CUELLO este es mi codigo

Código:
 if($busca!=""){
		$busqueda=mysql_query("SELECT * FROM productos WHERE categoria LIKE '%".$busca."%'")or die(mysql_error()); 
		while($f=mysql_fetch_array($busqueda)){
		 
			echo 
			'<div class="product">
									<div class="img-box">
										<div class="box-frame">&nbsp;</div>
										<img src="'.$f['foto'].'" alt="Product Image" />
									</div>
									<div class="pr-entry">
										<h4>'.$f['nombre'].'</h4>
										<span class="pr-number">Product: '.$f['id'].'</span>
										<p>'.$f['contenido'].'</p>
										<span class="pr-price"><span>s/.</span>'.$f['precio'].'</span>
									</div>
								</div>'
			;
		}
	 }
  #2 (permalink)  
Antiguo 23/08/2013, 19:04
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: Programación para mostrar una caracteristica cada tres resultados

Hola esta medio confuso. pero de lo que entendi puedes hacer un contador dentro del bucle
y revisar el resultado de la division entre 3, si es 0 aplicas un estilo diferente.
$a++;

if(($a%3)==0){//UN ESTILO}else{//OTRO ESTILO}

saludos
  #3 (permalink)  
Antiguo 23/08/2013, 19:10
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Exclamación Respuesta: Programación para mostrar una caracteristica cada tres resultados

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Hola esta medio confuso. pero de lo que entendi puedes hacer un contador dentro del bucle
y revisar el resultado de la division entre 3, si es 0 aplicas un estilo diferente.
$a++;

if(($a%3)==0){//UN ESTILO}else{//OTRO ESTILO}

saludos
Si amigo el tercero tiene que llevar otro estilo luego lo llevara e sexto luego el noveno asi de tres en tres cada tercero lleva otro estilo amigo solo cambia el estilo todo lo demas tiene q seguir igual
  #4 (permalink)  
Antiguo 23/08/2013, 19:13
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: Programación para mostrar una caracteristica cada tres resultados

Cita:
Iniciado por andritow Ver Mensaje
Si amigo el tercero tiene que llevar otro estilo luego lo llevara e sexto luego el noveno asi de tres en tres cada tercero lleva otro estilo amigo solo cambia el estilo todo lo demas tiene q seguir igual
Perfecto, ya esta tu solucion.

Saludos
  #5 (permalink)  
Antiguo 25/08/2013, 23:33
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Exclamación Respuesta: Programación para mostrar una caracteristica cada tres resultados

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Perfecto, ya esta tu solucion.

Saludos
No amigo aun no me sale, el codigo me quedaria asi

Código:
while($f=mysql_fetch_array($busqueda)){
			$a++;
			if(($a%3)==0){
				$estilo1='product';
				echo '
				<div class="'.$estilo1.'">
									<div class="img-box">
										<div class="box-frame">&nbsp;</div>
										<img src="'.$f['foto'].'" alt="Product Image" />
										<a href="#" class="more" title="View More">View More</a>
									</div>
									<div class="pr-entry">
										<h4>'.$f['nombre'].'</h4>
										<span class="pr-number">Product: '.$f['id'].'</span>
										<p>'.$f['contenido'].'</p>
										<span class="pr-price"><span>s/.</span>'.$f['precio'].'</span>
									</div>
								</div>';}
								else{
									$estilo2='product pr-last';
			$fin='
			<div class="cl">&nbsp;</div>';
				echo '
				<div class="'.$estilo2.'">
									<div class="img-box">
										<div class="box-frame">&nbsp;</div>
										<img src="'.$f['foto'].'" alt="Product Image" />
										<a href="#" class="more" title="View More">View More</a>
									</div>
									<div class="pr-entry">
										<h4>'.$f['nombre'].'</h4>
										<span class="pr-number">Product: '.$f['id'].'</span>
										<p>'.$f['contenido'].'</p>
										<span class="pr-price"><span>s/.</span>'.$f['precio'].'</span>
									</div>
								</div>'
								.$fin;}

		}
	 }
	?>
y todas las etiquetas del div son product pr-last no se intercala cada tres tambien probe de esta forma

Código:
$i=$i+1;
			if($i==1 || $i%3==0){
				$estilo1='product';
				echo '
				<div class="'.$estilo1.'">
									<div class="img-box">
										<div class="box-frame">&nbsp;</div>
										<img src="'.$f['foto'].'" alt="Product Image" />
										<a href="#" class="more" title="View More">View More</a>
									</div>
									<div class="pr-entry">
										<h4>'.$f['nombre'].'</h4>
										<span class="pr-number">Product: '.$f['id'].'</span>
										<p>'.$f['contenido'].'</p>
										<span class="pr-price"><span>s/.</span>'.$f['precio'].'</span>
									</div>
								</div>';
				}
		else
				{$estilo2='product pr-last';
			$fin='
			<div class="cl">&nbsp;</div>';
				echo '
				<div class="'.$estilo2.'">
									<div class="img-box">
										<div class="box-frame">&nbsp;</div>
										<img src="'.$f['foto'].'" alt="Product Image" />
										<a href="#" class="more" title="View More">View More</a>
									</div>
									<div class="pr-entry">
										<h4>'.$f['nombre'].'</h4>
										<span class="pr-number">Product: '.$f['id'].'</span>
										<p>'.$f['contenido'].'</p>
										<span class="pr-price"><span>s/.</span>'.$f['precio'].'</span>
									</div>
								</div>'
								.$fin;
				}
aca se intercala cada dos el primero sale con estilo Product pero el segundo product pr-last con la variable $fin que es el que da el salto de linea, la agrege otro mas un tercero para reconosca el 2 me sale la alineacion de tres pero se repite es decir q el id 1 sale tres veces sale el salto de linea y sigue el id pero tres veces espero me puedan ayudar pronto aun no le doy solucion a este problema q se va haciendo mas grande
  #6 (permalink)  
Antiguo 25/08/2013, 23:53
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Programación para mostrar una caracteristica cada tres resultados

andritow

no es difícil poner el código bien. poniendo el código bien tu explicación quedará más ilustrada y los que te queremos ayudar lo tendremos más fácil para encontrar rápidamente dónde necesitas ayuda.

siguiendo la acertada solución de Erick_MD9 la solución es así

Código PHP:
Ver original
  1. if($busca!="")
  2. {
  3.     $busqueda=mysql_query("SELECT * FROM productos WHERE categoria LIKE '%".$busca."%'")or die(mysql_error());
  4.    
  5.     //comienza el contador en cero
  6.     $count = 0;
  7.    
  8.     while($f=mysql_fetch_array($busqueda))
  9.     {
  10.         $count++;
  11.          echo "
  12.             <div class='product'>
  13.                 <div class='img-box'>
  14.                     <div class='box-frame'>&nbsp;</div>
  15.                         <img src='".$f['foto']."' alt='Product Image' />
  16.                 </div>";
  17.                 //% sirve para calcular el resto. por ejemplo dividido entre 2 es para números pares
  18.                 //dividido entre 3 es para números impares
  19.                 if ( ($count%3)==0 )
  20.                 {
  21.                     echo "
  22.                     <div class='pr-entry'>
  23.                         <h4>".$f['nombre']."</h4>
  24.                         <span class='pr-number'>Product: ".$f['id']."</span>
  25.                         <p>".$f['contenido']."</p>
  26.                         <span class='pr-price'><span>s/.</span>".$f['precio']."</span>
  27.                     </div>
  28.                     ";
  29.                 }
  30.             echo "</div>";
  31.     }
  32. }

¿sigues teniendo problemas? pues dinos cual, si te devuelve errores, pon el error, pero recuerda, utiliza adecuadamente los highlight, comenta tu código y respeta las tabulaciones.
por ti, por los demás, hazlo.

saludos.
__________________
Ayúdame a hacerlo por mi mismo.
  #7 (permalink)  
Antiguo 26/08/2013, 08:30
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Programación para mostrar una caracteristica cada tres resultados

No hay error dentro del codigo, probe el ultimo y es el que se aproxima mas, como vieron ami me tiene que salir de esta forma dos veces de product

<div class="product"></div>
<div class="product"></div>

Despues de los dos de product tiene que salir el product pr-last

<div class="product pr-last"></div>

--------------------------------------------------------------
Como ven el tercero cambia despues nuevamente y el sexto es el que cambiara a <div class="product pr-last"></div> y luego el noveno es el que cambiara a <div class="product pr-last"></div> y asi cada tercer valor tiene q tener esa clase, como vi el ultiimo salio pero salen asi

<div class="product"></div>
<div class="product"></div>
<div class="product"></div>

y el cuarto es el que cambia

<div class="product pr-last"></div> y eso me desarma el diseño de la pagina, espero que me haygan entendido les dejo el enlace para que vean como esta la pagina
[URL="http://uver-world.com/tienda/buscar.php?categoria=electrodomesticos"]http://uver-world.com/tienda/buscar.php?categoria=electrodomesticos[/URL]

ojalas me haygan entendido y espero q me puedan ayudar, ya que tengoq entregarlo hoy y me falta mucho
  #8 (permalink)  
Antiguo 26/08/2013, 08:54
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Programación para mostrar una caracteristica cada tres resultados

buenas!

pues creo que seria "facil"

Algoritmo:

inicias varible contador = 0
inicias tu ciclo
sumas 1 a la variable contador
si la condicion de 3 se cumple cambias estilo
presentas la informacion con estilo diferente
vuelves la variable a 0
si no se cumple la condicion
presentas la informacion con estilo normal
terminas la condicion
cierras tu ciclo hasta que terminar

Espero haberte ayudado

saludos!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!

Etiquetas: elegir
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:51.