Foros del Web » Programando para Internet » PHP »

OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Estas en el tema de OrderBy (mostrar 3 imagenes de los 3 ultimos posts) en el foro de PHP en Foros del Web. Hola a todos, llevo un buen rato (varias horas) liadisimo con un pequeño detalle.. Tengo una web que estoy montando yo mismo , paso a ...
  #1 (permalink)  
Antiguo 05/10/2011, 15:49
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 13 años, 5 meses
Puntos: 0
Exclamación OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Hola a todos, llevo un buen rato (varias horas) liadisimo con un pequeño detalle..
Tengo una web que estoy montando yo mismo , paso a paso ..
Tengo en el index 3 apartados:

Videos populares
Ultimos
Aleatorios

Eso es solo en el index. Y quiero que se muestren.. las 3 imagenes de los videos populares, 3 de ultimos , 3 de aleatorios..

He empezado con ultimos ya que me parece un poco mas facil por el order by desc..
No se imaginan todas las chapuzas que he hecho, no me dejaba poner el : echo '<img src=".$imagen." width=100 height=100>';

Hasta tal punto que he tenido que pasar como variables el "img src" y el width y height.. Bien os dejo laparte de mi code, el problema que tengo es que no me salen las 3 imagenes de los 3 ultimos posts.. sino me sale la imagen del ultimo repetida 3 veces :S

alguien me hecha una mano? ya no se qe mas hacer..

Código:
<?php

$result = mysql_query("SELECT * FROM fvideos ORDER BY id LIMIT 1");

while ($y=mysql_fetch_assoc($result)){
	$nombre=$y['nombre'];
	$new_hits=$y['hits']+10;
	$hits=$y['hits'];
	$video=$y['video'];
	$imagen=$y['imagen'];
	
	$var1="<img src='";
	$var2="'width=200 height=200>";

	 echo "<table border=0 align='center'><tr>
        	<td width=230px height=210px>
        <div style='margin:5px; border:double; width:200px; height:200px;'>
        		".$var1.$imagen.$var2."
        				</div>
        				</td>
        	<td width=230px height=210px>
        <div style='margin:5px; width:200px; height:200px; border:double;'>
        		".$var1.$imagen.$var2."
        			</div>
        				</td>
        	<td width=230px height=210px>
        <div style='margin:5px; width:200px; height:200px; border:double;'>
        			".$var1.$imagen.$var2."
        			</div>
        		</td></tr></table>";
	 
	
	
	
	}
	
	
	?>
Quiero que aparezcan 3 imagenes, de las ultimas entradas... pero 3 imagenes con formato, una tabla x ejemplo.. alguna idea? alguien que este disponible para hecharme una mano lo agrego a skype o msn aun me queda mucho por delante..
Entradas aleatorias, categorias, TOP.. ETC...
  #2 (permalink)  
Antiguo 05/10/2011, 15:54
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

En vez de LIMIT 1 necesitas LIMIT 3 para recoger las 3 últimas e imprimirlas en el bucle una por una, no todas.

Saludos.
__________________
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
  #3 (permalink)  
Antiguo 05/10/2011, 15:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Si perdona es que cuando le pongo 3 , ya no me salen las 3 imagenes en la tabla sino que se me descoloca todo porque salen 3x3 = 9 ! .. no se que mas se puede hacer :/
  #4 (permalink)  
Antiguo 05/10/2011, 15:58
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Por lo mismo que te digo, necesitas imprimir una a una, no las 3:

Código PHP:
Ver original
  1. <?php
  2. $result = mysql_query("SELECT * FROM fvideos ORDER BY id LIMIT 3");
  3.  
  4. while ($y = mysql_fetch_assoc($result)) {
  5.     echo '<img src="' . $y['imagen'] . '" width="200" height="200" />';
  6. }
__________________
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 05/10/2011, 15:59
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Prueba asi SELECT * FROM fvideos ORDER BY id desc LIMIT 3
  #6 (permalink)  
Antiguo 05/10/2011, 16:06
 
Fecha de Ingreso: noviembre-2010
Mensajes: 18
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Bien con esa concatenacion que me has pasado logro que salgan los 3 pero mediante el mismo echo '<img src="' . $y['imagen'] . '" width="200" height="200" />';

pero quiero que salgan las 3 imagenes dentro de un formato, nose si me explico..
que salgan en una tabla.. una imagen en cada columna <td>

como lo consigo? ya que si pongo el mismo echo img src en cada <td> lo unico que consigo es que me vuelva a mostrar una lista de 3 , que se muestre cada imagen en una td de la tabla (que obviamente serian 3..
  #7 (permalink)  
Antiguo 05/10/2011, 16:10
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Que te cuesta hacer algo así, ¿No sabes HTML? Visita el foro de HTML

Código PHP:
Ver original
  1. <?php
  2. $result = mysql_query("SELECT * FROM fvideos ORDER BY id desc LIMIT 3");
  3. echo "<table border=0 align='center'><tr>";
  4. while ($y = mysql_fetch_assoc($result)) {
  5.     echo '<td><img src="' . $y['imagen'] . '" width="200" height="200" /></td>';
  6. }
  7. echo "</tr></table>";
__________________
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
  #8 (permalink)  
Antiguo 05/10/2011, 16:32
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Mensaje Respuesta: OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Puedes ser mas especifico a ver si te entendi
Tu bd tiene un campo donde guardas la ruta de imagenes..
hace la consulta jalas los 3 ultimos id's y las quieres mostrar en una tabla por columnas.
________________

IMG1 | IMG2 | IMG3
________________

Si es así te recomiendo que uses un foreach :)
  #9 (permalink)  
Antiguo 05/10/2011, 16:36
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: OrderBy (mostrar 3 imagenes de los 3 ultimos posts)

Cita:
Iniciado por ayuujk Ver Mensaje
Puedes ser mas especifico a ver si te entendi
Tu bd tiene un campo donde guardas la ruta de imagenes..
hace la consulta jalas los 3 ultimos id's y las quieres mostrar en una tabla por columnas.
________________

IMG1 | IMG2 | IMG3
________________

Si es así te recomiendo que uses un foreach :)
Para que un foreach si ya se está usando un while??? me explicas?

para los aleatorios te recomendaría:

Código SQL:
Ver original
  1. SELECT * FROM TABLE ORDER BY RAND() LIMIT 3

Pero he leído que no es muy recomendable usar ORDER BY RAND() con grandes cantidades de registros. Podrías usar un IN y generar 3 números aleatorios con funciones de números o arrays.

Para los más populares ordena según los hits desc y haciendo lo mismo con LIMIT.

Saludos.
__________________
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

Etiquetas: sql, bases-de-datos, order-by
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 20:11.