Undefined offset: 2

Résolu/Fermé
LATIF - 14 janv. 2016 à 12:45
LATIFNignan Messages postés 6 Date d'inscription jeudi 14 janvier 2016 Statut Membre Dernière intervention 5 avril 2016 - 15 janv. 2016 à 12:24
Bonjour, mon code m'affiche une erreur "Undefined offset: 2". je tente de savoir depuis une jounée d'ou viens le probleme mais je n'arrive pas .s'il vous pouvez vous m'aider.je suis presqu'un debutant en php. voici le code de ma fonction

public function age($naiss) {

// Découper la date dans un tableau associatif
list($annee, $mois, $jour) = explode("-", $naiss);
// Récupérer la date actuelle dans des variables
$today['mois'] = date('n');
$today['jour'] = date('j');
$today['annee'] = date('Y');
// Calculer le nombre d'années entre l'année de naissance et l'année en cours
$age_d = $today['annee'] - $annee;
// Si le mois en cours est inférieur au mois d'anniversaire, enlever un an
if ($today['mois'] < $mois) {
$age_d--;
}
// Pareil si on est dans le bon mois mais que le jour n'est pas encore venu
if ($mois == $today['mois'] && $jour> $today['jour']) {
$age_d--;
}
return $age_d;
}


4 réponses

LATIFNignan Messages postés 6 Date d'inscription jeudi 14 janvier 2016 Statut Membre Dernière intervention 5 avril 2016 1
Modifié par jordane45 le 14/01/2016 à 13:54
ok merci pour votre reponse.

j'utilise MVC .ce code est saisi dans une class model "docteurs"


<?php
// Découper la date dans un tableau associatif 
list($annee, $mois, $jour) = explode("-", $naiss); 
// Récupérer la date actuelle dans des variables 
$today['mois'] = date('n'); 
$today['jour'] = date('j'); 
$today['annee'] = date('Y'); 
// Calculer le nombre d'années entre l'année de naissance et l'année en cours 
$age_d = $today['annee'] - $annee; 
// Si le mois en cours est inférieur au mois d'anniversaire, enlever un an 
if ($today['mois'] < $mois) { 
$age_d--; 
} 
// Pareil si on est dans le bon mois mais que le jour n'est pas encore venu 
if ($mois == $today['mois'] && $jour> $today['jour']) { 
$age_d--; 
} 
return $age_d; 
}
?>


Cependant j'appel la fonction au nivo d'une VU new
<div class="form-group">
  <label class="col-sm-2 control-label">age</label>
   <div class="col-sm-10">
   <select name="age_d" id="age_d">
   <option value=" <?php echo $age=model_docteurs::getInstance()->age(_root::getParam('date_naiss_d'));?>" selected></option>
   </select>
   </div>
 </div>



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
1
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
14 janv. 2016 à 12:51
Salute,

Tu pourrais mettre ton code entre les balises
 et 
se sera plus lisible.
Ensuite, tu pourrais mettre ta requête SQL concernant la variable $today stp.
0
jordane45 Messages postés 38469 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 avril 2025 4 741
14 janv. 2016 à 13:59
Bonjour,

1 - **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

2 - Quelle est la valeur de ta variable $naiss au moment de l'appel de ton script ?

3 - Quel est le message d'erreur EXACT (y compris le numéro de ligne...) que tu as ?

4 - Pour calculer l'age ... pourquoi ne pas utiliser la fonction Date_Diff ?
(ou DateTime_diff)
=> Tu fais le calcul en utilisant comme intervalle le "mois" ... et ainsi tu as l'age...
https://www.php.net/manual/fr/datetime.diff.php

Plus simple que de faire des ++ ou des -- dans des boucles..... non ??


0
LATIFNignan Messages postés 6 Date d'inscription jeudi 14 janvier 2016 Statut Membre Dernière intervention 5 avril 2016 1
15 janv. 2016 à 12:24
Bonjour,
veuillez m'excuser du retard juste que j'avais de connexion. J'ai pu résoudre mon problème.
Merci pour l’éclaircissement sur comment publier du code.
au moment de l'appel de la fonction la valeur de la variable $naiss est date_naiss_d.

Le problème était au niveau de l'appel de la récupération de la variable date_naiss_d (représentant la date de naissance d'un docteur).
J'ai du réécrire ma requête au sein même de la vu ou je voulait afficher la date de naissance,en affectant directement la valeur du champ $date_naiss_d à la variable $naiss.

Merci pour vos reponses

voici mon code
<td><?php echo $oDocteurs->prenom_d ?></td>

		<td><?php echo $oDocteurs->date_naiss_d ?></td>

		<td><?php echo $oDocteurs->lieu_naiss_d ?></td>

		<td><?php $naiss=$oDocteurs->date_naiss_d;
			
				// Découper la date dans un tableau associatif
				list($annee, $mois, $jour) = explode("-", $naiss);
				// Récupérer la date actuelle dans des variables
				$today['mois'] = date('n');
				$today['jour'] = date('j');
				$today['annee'] = date('Y');
				// Calculer le nombre d'années entre l'année de naissance et l'année en cours
				$oDocteurs->age_d = $today['annee'] - $annee;
				if($oDocteurs->age_d < 0) {$oDocteurs->age_d = $oDocteurs->age_d*(-1);}
				// Si le mois en cours est inférieur au mois d'anniversaire, enlever un an
				if ($today['mois'] < $mois) {
				$oDocteurs->age_d--;
				}
				// Pareil si on est dans le bon mois mais que le jour n'est pas encore venu
				if ($mois == $today['mois'] && $jour > $today['jour']) {
				$oDocteurs->age_d--;
				}
				echo $oDocteurs->age_d;
			
			?></td>

		<td><?php echo $oDocteurs->tel_d ?></td>
0

Discussions similaires