Foros del Web » Programando para Internet » PHP »

2 consultas iguales con distintos resultados...

Estas en el tema de 2 consultas iguales con distintos resultados... en el foro de PHP en Foros del Web. necesito realizar 2 consultas con resultados muy parecidos detallo: esta es mi primer consulta: en esta consulta solo muestro un resultado "SELECT * FROM tabla ...
  #1 (permalink)  
Antiguo 09/01/2013, 09:29
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta 2 consultas iguales con distintos resultados...

necesito realizar 2 consultas con resultados muy parecidos

detallo:

esta es mi primer consulta:

en esta consulta solo muestro un resultado

"SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT 0,1"




esta es mi segunda consulta:

en esta consulta muestro 20 resultados


"SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT 20"



lo que necesito realizar es que en la segunda consulta no me aparezca el resultado que se muestra en la primera.


como podría hacerlo ?
  #2 (permalink)  
Antiguo 09/01/2013, 10:09
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
Respuesta: 2 consultas iguales con distintos resultados...

Por que no creas una variable para cada consulta y dependiendo de la condicon utilizas una de las dos:

Código PHP:
Ver original
  1. $query_1 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT 0,1");
  2. $query_2 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT 0,1");
  #3 (permalink)  
Antiguo 09/01/2013, 15:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: 2 consultas iguales con distintos resultados...

Cita:
Iniciado por DeivisAndres Ver Mensaje
Por que no creas una variable para cada consulta y dependiendo de la condicon utilizas una de las dos:

Código PHP:
Ver original
  1. $query_1 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT 0,1");
  2. $query_2 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT 0,1");
Hola DeivisAndres, de hecho asi esta pero el problema no es ese , el problema es que no quiero que el resultado de arriba se me repita en los resultados de la segunda consulta.
  #4 (permalink)  
Antiguo 09/01/2013, 16:13
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
Respuesta: 2 consultas iguales con distintos resultados...

Bueno creo que entendí, lo que quieres es que en la primera consulta se te muestren todos, pero en la segunda se te muestren 20 verdad ?

Bueno seria lo mismo pero creas un variable donde definas el numero de registros que quiereas dependiendo de la consicion que quieras:

Código PHP:
Ver original
  1. $RegistrosAMostrar = 20;
  2.  
  3. ó
  4.  
  5. $RegistrosAMostrar = 1;
  6.  
  7. $query_1 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT $RegistrosAMostrar");
  8. $query_2 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT $RegistrosAMostrar");
  #5 (permalink)  
Antiguo 09/01/2013, 18:34
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: 2 consultas iguales con distintos resultados...

Cita:
Iniciado por DeivisAndres Ver Mensaje
Bueno creo que entendí, lo que quieres es que en la primera consulta se te muestren todos, pero en la segunda se te muestren 20 verdad ?

Bueno seria lo mismo pero creas un variable donde definas el numero de registros que quiereas dependiendo de la consicion que quieras:

Código PHP:
Ver original
  1. $RegistrosAMostrar = 20;
  2.  
  3. ó
  4.  
  5. $RegistrosAMostrar = 1;
  6.  
  7. $query_1 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT $RegistrosAMostrar");
  8. $query_2 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY rand() LIMIT $RegistrosAMostrar");

Hola DeivisAndres me sigues sin entender o no me he explicado bien;

en la primera consulta quiero que se muestre solo un resultado

en la segunda consulta que se muestren 20 pero que es esos 20 no este el único resultado de la primera consulta te explico porque:


porque ese único resultado de la primera consulta lo muestro en detalle en la pagina arriba

foto grande---> descripción ---> precio etc.





mas abajo en la pagina muestro en 3 columnas los demás resultados pero no quiero que en esos resultados aparezca el primero que salio


foto pequeña foto pequeña foto pequeña
Frase... Frase... Frase...
Link Link link


en las 2 busquedas utilizo ORDER BY rand() para que no siempre sean los mismos resultados en las mismas posiciones.


creo que ahora si me vas a entender
  #6 (permalink)  
Antiguo 10/01/2013, 07:42
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
De acuerdo Respuesta: 2 consultas iguales con distintos resultados...

Por lo mismo se utiliza el LIMIT mira como seria esto, como tu me dices lo que quieres es que primero se muestre el primer registro en la primera consulta y que en la segunda se muestren todos menos el primero verdad, entonces seria como te estoy diciendo pero con otros cambios.

NOTA: "LIMIT: Limita el número de registro a mostrar, se coloca el número principal el cual va hacer el número desde donde va a comenzar los registros hasta el número limite el cual va hacer el número limite de los datos. Ejemplo: LIMIT 0, 20 esto indica que la consulta debe de mostrar 20 resultados a partir del primer registro. LIMIT 7, 20 esto indica que la consulta debe mostrar los resultados a partir del registro número 8, desde 8 por que LIMIT considera el primer registro como cero. (0 = 1, 1 = 2, 3 = 4). "Consultas MYSQL Mas Usadas""

Código PHP:
Ver original
  1. $NumeroPrincipal_1 = 0;
  2. $NumeroLimite_1 = 1;
  3. ó
  4. $NumeroPrincipal_2 = 1;
  5. $NumeroLimite_2 = 20;
  6.  
  7. $query_1 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY id DESC LIMIT $NumeroPrincipal_1, $NumeroLimite_1");
  8. $query_2 = mysql_query("SELECT * FROM tabla WHERE campo='activa' ORDER BY id DESC LIMIT $NumeroPrincipal_2, $NumeroLimite_2");

Como puedes ver en la primera consulta solo te mostrara 1 resultado a partir del primer registro y en la segunda consulta te mostrara 20 resultados a partir del segundo ya que al poner 0 lo tomaría como el primero. espero a verme explicado bien.

Etiquetas: distintos, iguales, resultados, 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 16:12.