Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consultas dentro de un mismo while

Estas en el tema de consultas dentro de un mismo while en el foro de Mysql en Foros del Web. Hola, muy buenas!. Estoy tratando de realizar unas consultas a una tabla dentro de un while, y debo estar haciendo algo mal. En la primera ...
  #1 (permalink)  
Antiguo 20/12/2010, 08:46
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 13 años, 6 meses
Puntos: 0
consultas dentro de un mismo while

Hola, muy buenas!.


Estoy tratando de realizar unas consultas a una tabla dentro de un while, y debo estar haciendo algo mal.

En la primera consulta (antes del while)recogo varios valores de una variable con un select abro un while.

Bien, la cuestión es que dentro de dicho while quiero
hacer un par de consultas a la misma tabla para recoger dos valores máximos y dependiendo de ellos imprimir los valores iniciales o no.
Pero el tema es que sólo me recoge un valor(inicialmente) como si se tratara de un if y no de un while..

Es algo así:

Código PHP:

...
$conexion=...
SELECTfrom tabla where...
while(...)
{
$valor=$reg['campo'];
$conexion=...
SELECT MAX(.......AS maximo ...where...
if(
reg=....
{
  
$maximo1=$reg['maximo'];
 }
$conexion=...
SELECT MAX(...  AS maximo...where...
if(
reg=...
 {
 
$maximo2=$reg['maximo'];
}
if(
$maximo1>$maximo2)
{
echo 
$valor;
echo 
"<hr>";

Bueno, sé que es un poco lioso lo que he hecho. Cada script está bien escrito individualmente porque lo he comprobado por separado, e incluso en conjunto me funciona; perosólo me recoge un valor; aunque ponga
Código PHP:
echo $valor
justo después de while , sólo me recoge un valor, en lugar de todos. Me encantaría si puedo informarme en algun sitio acerca de la sintaxis apropiada para este tipo de scripts.

Mil saludos y gracias de antemano por cualquiere ayuda.
SAludos
  #2 (permalink)  
Antiguo 20/12/2010, 10:32
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: consultas dentro de un mismo while

Saludos

Esto es mas tema de php que de mysql, Como lo tienes codificado cada vez qeu recorre el ciclo la varible $valor se va reemplazar por un nuevo valor. Lo recomendable es que lo manejes como un arreglo y despues si lo recorras
Código PHP:
Ver original
  1. $valor[]=$reg['campo'];
  2. print_r($valor);

si sigues teniendo inconvenientes en el foro de php te podrán colaborar mejor!.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 20/12/2010, 13:12
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: consultas dentro de un mismo while

Gracias Nano.

La verdad es que no lo veo claro; he probado con arreglos también pero no me sale lo que busco.
Tal y como lo tengo aquí, lo que ocurre es que me sale el primer valor que encuentra en la primera tabla, y sólo ese.

Bueno lo voy a postear en PHP. Gracias de nuevo.

Saludos.
  #4 (permalink)  
Antiguo 23/12/2010, 15:30
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: consultas dentro de un mismo while

Hola de nuevo.
La verdad es que no doy con ello.
Se me ha ocurrido buscar dichos valores incluyendo todos los selects en una misma consulta.
Sé que lo que he hecho está mal( porque está medio inventado; pero me pregunto si se puede hacer algo parecido).
Código PHP:

$include
(..);
$registros=mysql_query("SELECT passwordemisor AS pass where (SELECT(MAX(time) from tabla where passwordemisor=pass AND passwordreceptor=$password))>(SELECT(MAX(time)from tabla where passwordemisor=$password AND passwordreceptor=pass))
while ($reg=mysql_fetch_array..

Dándole un nombre al valor buscado al inicio de la consulta, lo repito en las siguientes y así me aseguro de que se sigue manteniendo. Seguramente está fatal pero algo me dice que para lo que yo estoy buscando se puede hacer todo en una consulta.

Saludos

Etiquetas: Ninguno
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 18:07.