Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Imprimir consulta mysql en pantalla

Estas en el tema de Imprimir consulta mysql en pantalla en el foro de PHP en Foros del Web. Buen día, este es mi primer tema en este foro que tanto me ayuda. Tengo un tema en el cual no logro solucionarlo por mi ...
  #1 (permalink)  
Antiguo 22/01/2015, 09:30
 
Fecha de Ingreso: enero-2015
Mensajes: 2
Antigüedad: 9 años, 11 meses
Puntos: 0
Pregunta Imprimir consulta mysql en pantalla

Buen día, este es mi primer tema en este foro que tanto me ayuda.
Tengo un tema en el cual no logro solucionarlo por mi cuenta (falta de conocimiento), estoy estudiando php mysql por mi cuenta.
Tengo una tabla en phpmyadmin llamada asistencia donde se guarda nombre de alumno, su asistencia (Presente o Ausente), fecha y el id_alum.
Necesito extraer la cantidad de ausentes que tiene un alumno (no importa el periodo de tiemo), tengo la siguiente consulta que la ejecuto en phpmyadmin y funciona.

$sql=SELECT COUNT( 'presensia' )
FROM asistencia
WHERE presensia = 'Ausente'
AND id_alum = '14'//aqui va la variable que viene post o get.
$res=mysql_query($sql,$con);

//después hago la siguiente comprobación

if($reg=mysql_fetch_array($res) == 3)
{
echo "el alumno tiene mas de 3 inasistencias";
}else{

echo "el alumno tiene menos de 3 inasistencias";
}



cuando ejecuto la pagina en el navegador no me da error, lo que me muestra es
el alumno tiene menos de 3 inasistencias, pasa lo mismo con todo los alumnos tengan o no igual a tres inasistencias.

bueno espero haber sido claro con mi consulta, espero me puedan ayudar en donde estoy equivocado, no tengo mucho conocimiento estoy aprendiendo

Saludos al foro
Jose
  #2 (permalink)  
Antiguo 22/01/2015, 09:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Imprimir consulta mysql en pantalla

En primer lugar, no puedes cargar una consulta de esta forma:
Código PHP:
$sql=SELECT COUNT'presensia' )
FROM asistencia
WHERE presensia 
'Ausente'
AND id_alum '14'//aqui va la variable que viene post o get.
$res=mysql_query($sql,$con); 
La consulta SQL debe ser cargada en la variable como una cadena de texto, ya que SQL y PHP no son el mismo lenguaje, y lo que vas a hacer es enviar a MySQL a ejecutar una consulta por medio de una libreria de acceso a MySQL.
PHP no entiende SQL y MySQL no entiende PHP. Son sistemas diferentes que se comunican por librerias.

Por otro lado, la consulta en sí está mal escrita, ya que esto:
Código SQL:
Ver original
  1. SELECT COUNT( 'presensia' )
  2. FROM asistencia
  3. WHERE presensia = 'Ausente' AND id_alum = '14'
no está contando el valor del campo "presencia", sino una cadena de texto que dice "presencia". Los apostrofes en MySQL encierran cadenas de texto, y su valor en ese contexto es 1 (es largo de explicar por qué).
Lo que te pasa es que estás confundiendo los apóstrofos (') con los acentos agudos (`) y no se trata del mismo caracter. Los acentos agudos si se usan para los nombres de objetos de base de datos en MySQL.

Para funcionar tu consulta debería ser mas o menos así:
Código PHP:
$sql"SELECT COUNT(presensia ) FROM asistencia 
WHERE presensia = 'Ausente' AND id_alum = 14"
;
$res=mysql_query($sql$con); 
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/01/2015, 10:05
 
Fecha de Ingreso: enero-2015
Mensajes: 2
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Imprimir consulta mysql en pantalla

Hola gnzsoloyo, la voy a probar como tu me indicas, ahora el if esta bien ?, debería imprimir en pantalla el resultado de la consulta ?

if($reg=mysql_fetch_array($res) == 3)
{
echo "el alumno tiene mas de 3 inasistencias";
}else{

echo "el alumno tiene menos de 3 inasistencias";
}

gracias si usted me ayuda como quedaría el código completo ??

Etiquetas: condición, count, ifelse, mysql, mysql+consulta
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 10:23.