Foros del Web » Programando para Internet » PHP »

Consulta: solicitar mayor dato de un campo

Estas en el tema de Consulta: solicitar mayor dato de un campo en el foro de PHP en Foros del Web. Buenas tardes, vengo con una duda. Resulta que estoy creando un script, el cual será una especie de contador. Es decir, a medida que más ...
  #1 (permalink)  
Antiguo 17/03/2011, 14:27
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Consulta: solicitar mayor dato de un campo

Buenas tardes, vengo con una duda.

Resulta que estoy creando un script, el cual será una especie de contador. Es decir, a medida que más personas participen/inscriban en un evento determinado, dicho script reflejará si hay muchos o pocos usuarios participando.

El contador es animado, consta de cuatro imagenes en formato gif. Hasta aquí todo va excelente.

Como trabaja el script, pues hago una consulta a mysql de la siguiente manera:

SELECT max(id) FROM basket WHERE rank='1'"

Luego, comienzo a comparar:

Código:
while ($row = mysql_fetch_row($result)){
		
			if ($row[0] > 3)
			{
				echo "<img src='imagenes/contador/basket/unbasket.gif'>";
			}
			
			if ($row[0] > 20)
			{
				echo "<img src='imagenes/contador/basket/dosbasket.gif'>";
			}
			
			if ($row[0] > 40)
			{
				echo "<img src='imagenes/contador/basket/tresbasket.gif'>";	
			}
			
			if ($row[0] > 70)
			{
				echo "<img src='imagenes/contador/basket/completa.gif'>";	
			}	

		} while ($row = mysql_fetch_array($result));
Dependiendo del valor de id, mostrará uno u otra imagen. El problema es que al correr el script no muestra una imagen, sino varias... es decir, el script no está seleccionando el mayor valor de id, sino que selecciona todos los valores de dicho campo o los compara.

Como puedo solucionar esto? gracias de antemano.
  #2 (permalink)  
Antiguo 17/03/2011, 15:04
Avatar de andrexsos17  
Fecha de Ingreso: enero-2011
Ubicación: Manizales
Mensajes: 169
Antigüedad: 13 años, 3 meses
Puntos: 15
Respuesta: Consulta: solicitar mayor dato de un campo

Sencillo despues de cada impresion de imagen
Código PHP:
Ver original
  1. echo "<img src='imagenes/contador/basket/unbasket.gif'>";
coloca
Código PHP:
Ver original
  1. return;
o si solo quieres romper el ciclo coloca
Código PHP:
Ver original
  1. break;
  #3 (permalink)  
Antiguo 17/03/2011, 15:16
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Respuesta: Consulta: solicitar mayor dato de un campo

Cita:
Iniciado por andrexsos17 Ver Mensaje
Sencillo despues de cada impresion de imagen
Código PHP:
Ver original
  1. echo "<img src='imagenes/contador/basket/unbasket.gif'>";
coloca
Código PHP:
Ver original
  1. return;
o si solo quieres romper el ciclo coloca
Código PHP:
Ver original
  1. break;

gracias por responder,

Pues, hice lo que comentas y el return lo que hace es limitar el script hasta la primera comparación. Es decir, solo muestra la primera imagen, para salir de dudas quita el return de la primera parte y entonces mostró la segunda.

Igualmente, gracias por comentar.
  #4 (permalink)  
Antiguo 17/03/2011, 15:58
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Consulta: solicitar mayor dato de un campo

Realizando un echo antes del primer if, pude corroborar que el dato que está obteniendo de la consulta es el id mayor, es decir, por ahí no hay ningún error.

El error debe presentarse en la parte de comparación, creo que falta algo luego del echo llamando a las imágenes (Así como comento el amigo andrexsos17) pero no logro dar con el código faltante.

Si alguien puede ayudarme, le estaría muy agradecido.

Saludos
  #5 (permalink)  
Antiguo 17/03/2011, 17:06
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Consulta: solicitar mayor dato de un campo

revisando detenidamente el script encontré varios errores de lógica, a continuación los expongo.

Quiero que, dicho script compare en su primer if si el maxid es menor o igual que 3

if ($row[0] <= 3)

en el segundo if, si es mayor que 3 y menor o igual que 20. Al querer realizar dos comprobaciones en un mismo if es donde me complico... no sé como hacerlo. Si alguien puede ayudarme se lo agradecería muchísimo.

if ($row[0] > 3 AND <= 20) :/
  #6 (permalink)  
Antiguo 17/03/2011, 17:26
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Consulta: solicitar mayor dato de un campo

Me respondo yo mismo, solucione el problema... espero pueda ser útil para alguien más.

A continuación colocaré solo la parte de verificación:

[CODE]if ($row[0] <= 3)
{
echo "<img src='imagenes/contador/basket/unbasket.gif'>";
}

if ($row[0] > 3 and $row[0] <= 20)
{
echo "<img src='imagenes/contador/basket/dosbasket.gif'>";
}

if ($row[0] > 20 and $row[0] <= 40)
{
echo "<img src='imagenes/contador/basket/tresbasket.gif'>";
}

if($row[0] > 40 and $row[0] <= 70)
{
echo "<img src='imagenes/contador/basket/completa.gif'>";
} [CODE]

Saludos
  #7 (permalink)  
Antiguo 17/03/2011, 19:31
Avatar de andrexsos17  
Fecha de Ingreso: enero-2011
Ubicación: Manizales
Mensajes: 169
Antigüedad: 13 años, 3 meses
Puntos: 15
Respuesta: Consulta: solicitar mayor dato de un campo

Ups, que pena contigo @manuel2788, mi idea era invertir las condicionales es decir que primero fuera la de 70, 40, 20 y asi usar el return, pero se me olvido ese pequeño detalle, la forma como lo solucionaste es adecuada y felicitaciones por encontrar tus errores. Saludos!!

Etiquetas: mysql
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 07:55.