Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/08/2010, 22:00
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Cómo puedo elegir el 2° mayor, el 3° mayor ó el 4° mayor en una consulta s

Cita:
Iniciado por heart_rocker Ver Mensaje
en realidad estoy empezando en esto de sql... el tema es que podría poner una lista descendente, pero necesito que cada dato aparezca en tablas de distribución distintas dentro de mi archivo php...

La respuesta de mortiprogramador me parece más acertada a lo que busco pues igual pensé en algo como LIMIT y -1... pero agradecería si pudieras explicar un poco más por favor...

Esta es mi consulta sql... lo hice con los id de las noticias que tengo, esta es sólo una consulta que corresponde al id 10 y va en una tabla de distribución propia... agradecería que pudieras explicarme donde insertar el LIMIT y donde hacer las restas...

<?php
include("conectar.php");
$noticias = mysql_query("SELECT id, noticia FROM noticias WHERE id=10");
$noticia1 = mysql_query("SELECT id, noticia FROM noticias WHERE id=10");
if($row_not = mysql_fetch_row($noticias)){
while ($row = mysql_fetch_row($noticia1))

{echo "<p class='subtitulo'>$row[1]</p>";}}?></td>

<td width="60" align="right" valign="middle" class="subtitulo">?>
saludos
bueno, me confunde un poco lo que quieres lograr, voy a tratar de explicar lo que yo creo que quieres lograr

Tengo una tabla noticias donde tengo n registros, pero quiero que cada uno se muestre en una tabla distinta

así pues, usaría alguna de estas dos soluciones:

0.
Código MySQL:
Ver original
  1. "SELECT id, noticia FROM noticias LIMIT 0,5 ORDER BY id DESC"

y luego en el php, haria UNA sola consulta con este query, y haria
UN solo ciclo while y cada vez que se cumpla (es decir, tiene datos)
dibujaria una tabla completa

1.

Código MySQL:
Ver original
  1. "SELECT max(id) as mayor FROM noticias"

lo cual traería 10 (actualmente)

y como es solo un resultado, simplemente asigno el id a una variable php,
por ej $max_id = $row['mayor'];

y luego empiezo a hacer consultas individuales, empezando por $max_id (es decir, 10) y dibujo una tabla, y luego resto 1 unidad a $max_id (quedando en 9) y hago el mismo proceso anterior, algo así

Código PHP:
Ver original
  1. $res = mysql_query("SELECT max(id) as mayor FROM noticias");
  2. $resu = mysql_fetch_row($res);
  3. $max_id = $resu['mayor'];
  4.  
  5. $mayor1 = mysql_query("SELECT campos from tabla WHERE id =".$max_id);
  6. //while
  7. $max_id--;//resto 1
  8. //repito
  9. $mayor2 = mysql_query("SELECT campos from tabla WHERE id =".$max_id);
  10. //while
  11. $max_id--;//resto 1
  12. //y asi sucesivamente

aunque de las dos, me parece mejor la primera opción (0)

bueno, ahora si espero haya aclarado un poco más
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com