PHP - valore manipulacion

 
Vista:

valore manipulacion

Publicado por noe (128 intervenciones) el 17/07/2020 23:33:58
Hola foro !!!
tengo 2 script y funcionan bien lo unico que no he podido es la manipulacion del valor de la variable, el dato que trae es una fecha ejemplo (1954-09-20) lo que pretendo es sacar el año de la fecha para poder calcular su edad del paciente les muestro los 2 script.

alta_consulta1.php
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
session_start();
date_default_timezone_set('America/Mexico_City');
$fecha = date("Y-m-d") ;
 
if ($_SESSION["usuario"]){
	//echo $_SESSION["usuario"];
	require ("conecta.php");
  	$busca = "SELECT MAX(con_id) as maximo from consulta";
  	$lista = mysqli_query($conectado,$busca);
  	$dato =  mysqli_fetch_assoc($lista);
  	$max_fol= $dato[maximo] + 1;
  	?>
	<!DOCTYPE html>
	<html lang="es">
	<head>
		<meta charset="UTF-8">
		<title>Consulta</title>
		<script type="text/javascript" src="js/jquery.js"></script>
		<script type="text/javascript">
			function CedulaPaciente(id){
				$.post("alta_consulta2.php",{ClaveId:id},function(retorno){
					registro = retorno.split("/");
					$('#nomp').val(registro[0]);
					$('#fecp').val(registro[1]);
				});
			}
		</script>
	</head>
	<body>
	<div class="caja">
	<form name="f" action="alta_consulta3.php" method="post">
		<br />
		<table width="746" align="center">
			<tr>
				<td width="130">Num. Expediente</td>
				<td width="370"><input type="text" name="nuex" class="alto1" value="<?php echo $max_fol; ?>"></td>
				<td width="55" align="right">Fecha&nbsp;</td>
				<td width="20"><input type="date" name="fein" value="<?php echo $fecha; ?>" class="alto1"></td>
			</tr>
			<tr>
				<td>Cedula Prof.</td>
				<td><input type="text" name="cepo" class="alto1" autofocus="on"></td>
				<td>&nbsp;</td>
				<td>&nbsp;</td>
			</tr>
			<tr>
				<td>Nombre Medico</td>
				<td><input type="text" name="nome" id="nomm" class="alto1 largo2"></td>
				<td>&nbsp;</td>
				<td>&nbsp;</td>
			</tr>
			<tr>
				<td>Cedula Paciente</td>
				<td><input type="text" name="cepa" onchange="CedulaPaciente(this.value)" class="alto1"></td>
				<td>&nbsp;</td>
				<td>&nbsp;</td>
			</tr>
			<tr>
				<td>Nombre Paciente</td>
				<td><input type="text" name="nopa" id="nomp" class="alto1 largo2"></td>
				<td align="right">Edad&nbsp;</td>
				<?php
				if (isset($cepa)){
					//$ant = $('#fecp').val($registro[1]);
					//$ant = ($registro[1]);
					$ant = $_SESSION["pasofecha"];
					$act = $fecha;
					$old = explode("-", $ant);
					$new = explode("-", $act);
					$anios = $new[0] - $old[0];
				}
				?>
				<td><input type="text" name="edpa" value="<?php echo $anios; ?>" class="alto1 largo1">&nbsp;&nbsp;&nbsp;Años</td>
			</tr>
		</table>
		<table width="746" align="center">
			<tr>
				<td colspan="2" align="center">MEDICAMENTO</td>
				<td colspan="2" align="center">INDICACIONES</td>
			</tr>
			<tr>
				<td colspan="2"><textarea name="med" rows="8" cols="48"><?php echo $new[0] ;?></textarea></td>
				<td colspan="2"><textarea name="ind" rows="8" cols="48"></textarea></td>
			</tr>
		</table>
		<br /><br />
	</form>
	<div id="botones">
		<input type="button" value="Registra Consulta" class="btn btn-azu" onclick="registra()" tabindex="10"/>
		<input type="button" value="Limpia" class="btn btn-azu" onclick="window.location='alta_consulta1.php'" tabindex="11"/>
		<input type="button" value="Menu Principal" class="btn btn-azu" onclick="window.location='menu_hospital.php'" tabindex="12"/>
	</div>
	</div>
	</body>
	</html>
	<?php
}else{
	echo
	"<script type='text/javascript'>
		alert('Usted no esta logueado');
		window.location='index1.php';
	</script>";
}
?>

alta_consulta2.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
	session_start();
	require ("conecta.php");
	$id = $_POST['ClaveId'];
 
 
	$peticion = "SELECT concat(nombre,' ',apellido) as nombre,fec_nac from paciente where ced = '$id' ";
	$respuesta = mysqli_query($conectado,$peticion);
	$registros = mysqli_fetch_object($respuesta);
	$dato = mysqli_fetch_assoc($respuesta);
 
	$_SESSION["pasofecha"]=$dato["fec_nac"];
	$datos = $registros->nombre."/".$registros->fec_nac;
	echo $datos;
?>
GRACIAS.
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 joel
Val: 2.824
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

valore manipulacion

Publicado por joel (859 intervenciones) el 18/07/2020 13:48:56
Si es un campo fecha, puedes hacer que la consulta sql te devuelva el mes...

1
$peticion = "SELECT concat(nombre,' ',apellido) as nombre,fec_nac, month(fec_nac) as mes from paciente where ced = '$id' ";

Te sirve?
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
Imágen de perfil de javier
Val: 1.402
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

valore manipulacion

Publicado por javier (369 intervenciones) el 18/07/2020 14:16:02
Hola,

aqui tienes una manera de sacar la edad del paciente, hay mas formas de hacerlo.
1
2
3
4
5
$fecha_nacimiento = new DateTime("1984-06-05");
$hoy = new DateTime();
$edad = $hoy->diff($fecha_nacimiento);
 
echo $edad->y;




saludos
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

valore manipulacion

Publicado por noe (128 intervenciones) el 18/07/2020 21:37:57
Hola Javier y Joel !!!

creo que no he podido darme a enterder , mi problema no es como calcular la edad si no la manipulación del valor de la variable que regresa la funcion consultapaciente q a su vez invoca el script alta_consulta2.php <--- este hace la peticion al servidor para traer el nombre y la fecha de nacimiento, y se lo regresa a la funcion consultapaciente y lo mete en la variable ( $('#fecp').val(registro[1]); ) y lo muestro en
1
<input type="text" name="edpa" id="fecp" class="alto1 largo1">
pero muestra asi (1981-12-01), la pregunta es como puedo desglosar esta variable
1
$('#fecp').val(registro[1])
para poder sacar solo el año.
GRACIAS
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: 48
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

valore manipulacion

Publicado por ernesto (12 intervenciones) el 19/07/2020 00:00:54
Usa explode() con el separador - y tendrás la fecha en un array
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

valore manipulacion

Publicado por noe (128 intervenciones) el 19/07/2020 16:22:57
Hola Ernesto !!!

lo pondre en practica

GRACIAS
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

valore manipulacion

Publicado por noe (128 intervenciones) el 20/07/2020 00:43:42
hola Ernesto

me da pena molestarte tanto, pero soy novato en esta tecnología.
efectivamente con $('#fecp').val(registro[1].substr(0, 4)); separa el año, yo te avía comentado que sabia calcular la fecha pero no he podido
yo tengo esto y esta dentro del formulario

1
2
3
4
5
6
7
8
9
10
<td><input type="text" name="cepa" onchange="CedulaPaciente(this.value)" autofocus="on" tabindex="4"></td>
 
if (isset($cepa)){
$fena = val($registro[1]);
$feac = date("Y-m-d");
$old = explode("-", $fena);
$new = explode("-", $feac);
$anios = $new[0] - $old[0];
}
<input type="text" name="edpa" value="<?php echo $anios?>" class="alto1 largo1" tabindex="6">
pero no ejecuta nada siento que el calculo debería hacerse en la función o en el script alta_consulta2.php te lo muestro abajo

1
2
3
4
5
6
7
8
9
require ("conecta.php");
$id = $_POST['ClaveId'];
 
$peticion = "SELECT concat(nombre,' ',apellido) as nombre,fec_nac from paciente where ced = '$id' ";
$respuesta = mysqli_query($conectado,$peticion);
$registros = mysqli_fetch_object($respuesta);
 
$datos = $registros->nombre."/".$registros->fec_nac;
echo $datos;

perdón mi atrevimiento pero me podriás ayudar a resolverlo ?
GRACIAS
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
Imágen de perfil de javier
Val: 1.402
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

valore manipulacion

Publicado por javier (369 intervenciones) el 20/07/2020 10:13:17
Hola

La verdad no se te entiende muy bien,
en el archivo alta_consulta2.php solo haces un echo de la variable $datos que contiene el nombre y fecha de nacimiento, el script no calcula nada.

y este script:

1
2
3
4
5
6
7
8
9
10
<td><input type="text" name="cepa" onchange="CedulaPaciente(this.value)" autofocus="on" tabindex="4"></td>
 
if (isset($cepa)){
$fena = val($registro[1]);
$feac = date("Y-m-d");
$old = explode("-", $fena);
$new = explode("-", $feac);
$anios = $new[0] - $old[0];
}
<input type="text" name="edpa" value="<?php echo $anios?>" class="alto1 largo1" tabindex="6">

interpreto que es php y que la variable $cepa esta definida para que entre el IF, (por que si no lo esta no hará nada) por lo que lo cambio asi

1
2
3
4
5
6
7
8
9
10
11
12
13
<td><input type="text" name="cepa" onchange="CedulaPaciente(this.value)" autofocus="on" tabindex="4"></td>
 
<?php
$anios = '';
if (isset($cepa)){
$fena = $registro[1];
$feac = date("Y-m-d");
$old = explode("-", $fena);
$new = explode("-", $feac);
$anios = $new[0] - $old[0];
}
?>
<input type="text" name="edpa" value="<?php echo $anios?>" class="alto1 largo1" tabindex="6">

saludos
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

valore manipulacion

Publicado por noe (128 intervenciones) el 20/07/2020 21:51:06
buenas tardes Javier.
no ejecuta esto que esta dentro del html
1
2
3
4
5
6
if (isset($cepa)){
$fena = val($registro[1]);
$feac = date("Y-m-d");
$old = explode("-", $fena);
$new = explode("-", $feac);
$anios = $new[0] - $old[0]; no imprime nada

efectivamente es dificil el flujo en html,php y javascript he esta investigando y esto se hace en el bach-end yo ejecuto ese back-end con la funcion (CedulaPaciente) que trabaja correctamente y me trae la informacion que deseo todo se complico con la fecha, creo que ya lo resolvi la fecha de nacimiento le pedi que solo regresara el año solamente y lo hice con esto
1
2
$peticion = "SELECT concat(nombre,' ',apellido) as nombre, year(fec_nac) as fec_nac, year(fec_act) as fec_act
from paciente p, fecha_actual f where ced = '$id' ";
cree un tabla que se llama fecha_actual y su campo se llama fec_act dentro de la funcion modifique esto
1
2
$('#fecp').val(registro[1]);
$('#fech').val(registro[2] - registro[1]);

1
<input type="text" name="edpa" id="fech" class="alto1 largo1" tabindex="6">
y ya muestra la edad del paciente, ahora solo necesito es investigar si dentro de la funcion se puede manipular la fecha actual para borrar la tabla fecha_actual me podrias dar tu opinion si esta corecto?
o si se puede mejorarla?
GRACIAS
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