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

[SOLUCIONADO] Consulta Complicada de Hacer

Estas en el tema de Consulta Complicada de Hacer en el foro de Mysql en Foros del Web. Hola necesito ayuda para hacer una consulta de MYSQL en php pero no puedo dar con la que funcione @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original ...
  #1 (permalink)  
Antiguo 08/02/2014, 18:00
 
Fecha de Ingreso: enero-2014
Mensajes: 9
Antigüedad: 10 años, 2 meses
Puntos: 0
Consulta Complicada de Hacer

Hola necesito ayuda para hacer una consulta de MYSQL en php pero no puedo dar con la que funcione
Código SQL:
Ver original
  1. SELECT COUNT(*) AS total
  2. FROM usuarios WHERE id_login = '".$variable."' AND COUNT <>'".$id."'
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos. Leer las normas del foro, por favor.
la parte roja es la que esta mal echa nose si se puede hacer lo que quiero
lo que quiero es que me traiga cuantos usuarios tienen en el campo id_log de la BD el dato 1 que serian los que estan logeados , pero que tambien el resultado sea diferente a $id que seria un dato que llega de ajax que podria ser por ej: 2 para si despues poder mostar los logeados solamente si hay un cambio en la lista, osea si eran 5 logeados y son ahora 4 o 6 recargue y muestre , dejo el codigo completo de la funcion abajo para quien me pueda ayudar tenga una idea mas amplia .
Código SQL:
Ver original
  1. SELECT username FROM usuarios
  2. WHERE id_login = '".$EnviaSession."' ORDER BY username
Código SQL:
Ver original
  1. SELECT COUNT(*) AS total FROM usuarios
  2. WHERE id_login = '".$EnviaSession."'  <>'".$id2."'

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos. Leer las normas del foro, por favor.

Última edición por gnzsoloyo; 08/02/2014 a las 18:43
  #2 (permalink)  
Antiguo 09/02/2014, 12:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta Complicada de Hacer

Antes que nada: No dupliques temas. Está expresamente prohibido en las políticas de uso de FDW.

En cuando a tu pregunta:
Cita:
lo que quiero es que me traiga cuantos usuarios tienen en el campo id_log de la BD el dato 1
Es una pregunta bastante simple y básica, pero debes tratar de estudiar un poco de SQL para hacer ciertas cosas.
para ser claro: Ningún DBMS permite usar funciones agregadas en el WHERE. Ninguno. Por consecuencia no puedes usar COUNT() en esa cláusula, por eso te falla. Para hacer un filtrado de cantidad como la que quieres requeriría agrupar, y en tu consulta agrupar es innecesario porque no estás buscando un valor de agregación sino el cálculo total:
Código MySQL:
Ver original
  1. SELECT COUNT(*) total
  2. FROM usuarios
  3. WHERE id_log = 1;
Eso devolvería la cantidad de logueados activos, según lo que tu mismo dices.

Para usar una variable en el contexto que dices, debes usar HAVING (ver manual de referencia, por favor, como hacemos todos), que es la cláusula que permite poner condiciones sobre valores que se obtienen de funciones agregadas:
Código MySQL:
Ver original
  1. SELECT COUNT(*) total
  2. FROM usuarios
  3. WHERE id_log = 1
  4. HAVING COUNT(*) >= $variable;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, php, select, sql, usuarios
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 00:04.