MySQL - Mysql - Fetch Array

 
Vista:
Imágen de perfil de Hugo

Mysql - Fetch Array

Publicado por Hugo (3 intervenciones) el 24/04/2018 19:57:32
Hola buenas tardes, tengo un problema con mysql, con esto del cambio de código y recien aprendiendo más del mismo, les quiero realizar una consulta, tengo el siguiente código en php donde muestro los datos de un array pero quisiera calcular la edad de los alumnos de la base de datos a partir de la fecha de nacimiento, ya le busqué por otros foros y no encuentro algo que me ayude. Saludos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html">
<html>
<head>
<title>Alumnos</title>
</head>
<body>
<?php
include ('conexion.php');

$consulta = "select * from tabla_alumno order by id_alumno ASC";
$resconsulta = $enlace->query($consulta); // "enlace" nombre de la variable en conexion.php

?>

<table border=2>
		<tr>
			<td>Matrícula</td>
			<td>Nombre</td>
			<td>Apellido Paterno</td>
			<td>Apellido Materno</td>
			<td>Sexo</td>
			<td>Fecha de nacimiento</td>
			<td>Edad</td>
		</tr>
<?php
while ($registroalumnos = $resconsulta->fetch_array(MYSQLI_BOTH)) {
    echo '<tr>
				<td>' . $registroalumnos['id_alumno'] . '</td>
				<td>' . $registroalumnos['Nombre'] . '</td>
				<td>' . $registroalumnos['APaterno'] . '</td>
				<td>' . $registroalumnos['AMaterno'] . '</td>
				<td>' . $registroalumnos['Sexo'] . '</td>
				<td>' . $registroalumnos['FechaNaci'] . '</td>
                <td>  ""Este valor se repite en cada uno de las filas""  </td>
			</tr>';
}

?>
</table>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Hugo

Mysql - Fetch Array

Publicado por Hugo (3 intervenciones) el 24/04/2018 20:05:47
Gracias por tu rápida respuesta, disculpa mi ignorancia al respecto pero como puedo usar el dato del array para manipularlo y calcular la edad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 98
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Mysql - Fetch Array

Publicado por Yamil Bracho (40 intervenciones) el 24/04/2018 20:18:03
En el link que te envie hay una funcion que te calcula la edas y le pasas la fecha de nacimiento. La funcion en cuestion es

1
2
3
4
function CalculaEdad( $fecha ) {
    list($Y,$m,$d) = explode("-",$fecha);
    return( date("md") < $m.$d ? date("Y")-$Y-1 : date("Y")-$Y );
}

La fecha la pasas en formato yyyy-mm-dd y te lo retorna en formato mm-yyyy-dd. Para llamarlo des de tu codigo haces

1
<td><?php  echo CalculaEdad($registroalumnos['FechaNaci']); ?></td>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Mysql - Fetch Array

Publicado por leonardo_josue (414 intervenciones) el 24/04/2018 20:37:56
Hola Hugo:

Este es un foro de MySQL y como tal no debes incluir código de PHP ni de cualquier otro lenguaje de programación. Ojo con eso para la próxima. Si quieres incluir código, entonces puedes publicar tu pregunta en el foro correspondiente.

En cuanto a tu problema, puedes resolverlo desde Base de Datos utilizando la función TIMESTAMPDIFF de MySQL para calcular la edad a partir de la fecha de nacimiento:

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timestampdiff


De tal suerte que podrías hacer la consulta así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mysql> SELECT * FROM tabla;
+--------+------------------+
| nombre | fecha_nacimiento |
+--------+------------------+
| hugo   | 1980-12-21       |
| paco   | 2017-04-24       |
| luis   | 2020-03-11       |
+--------+------------------+
3 rows in set (0.00 sec)
 
mysql> SELECT
    ->   nombre,
    ->   fecha_nacimiento,
    ->   TIMESTAMPDIFF(YEAR, fecha_nacimiento, CURDATE()) edad
    -> FROM tabla;
+--------+------------------+------+
| nombre | fecha_nacimiento | edad |
+--------+------------------+------+
| hugo   | 1980-12-21       |   37 |
| paco   | 2017-04-24       |    1 |
| luis   | 2020-03-11       |   -1 |
+--------+------------------+------+
3 rows in set (0.00 sec)

Ojo, si a fecha de nacimiento que tienes en tu campo es posterior a la fecha actual, entonces el resultado es -1.

Haz la prueba y nos comentas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Hugo

Mysql - Fetch Array

Publicado por Hugo (3 intervenciones) el 24/04/2018 21:18:06
muy bien, gracias por el dato lo tendré en cuenta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar