Warning: Trying to access array offset on value of type bool

Fermé
aichatou - 27 janv. 2023 à 16:42
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 9 févr. 2023 à 14:32

Bonjour, je voudrais avoir aide, j'ai ce message qui s'affiche sur ma page modale. J'ai parcouru quelques cas pareils dans ce forum mais je n'ai pas pu trouver la solution.

Voici le code:

<?php
require_once('cn.php');
$re=$cn->query('SELECT * from etudiant');
?>


<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<!--link rel="stylesheet" href="https://unicons.iconscout.com/release/v4.0.0/css/line.css"-->

	<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/bootstrap.js"></script>

	<title></title>
</head>
<body>
<!-- Modale de modification-->
			
<div class="modal fade" id="modif" tabindex="-1" aria-hidden='true' aria-labelledby="" role='dialog'>
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal" aria-hidden="true"> &times; </button>
				<i class="glyphicon glyphicon-user"></i>&nbsp;Modification de l'etudiant <strong><?php echo $tabRe['nom'].'&nbsp;'.$tabRe['prenom']; ?></strong></div>
			<div class="modal-body">
				<form class="form-horizontal" action="opera_ali.php" method="POST" >
				<!--masquage de idclient-->
					<input type="hidden" name="c" value="2">
					<input type="hidden" name="ide" value="<?php echo $tabRe['ide']; ?>">
						<div class="form-group">
							<div class="col-md-3">
							<label for="nom" class="control-label pull-right">Nom:</label></div>
							<div class="col-md-7">
									<input type="text" name="nom" class="form-control" placeholder="Saisissez le nom" required="" value="<?php echo $tabRe['nom'];?>">
							</div>
						</div>
						<div class="form-group">
							<div class="col-md-3">
							<label for="prenom" class="control-label pull-right">Prenom:</label></div>
							<div class="col-md-7">
									<input type="text" name="prenom" class="form-control" placeholder="Saisissez le prenom" required="" value="<?php echo $tabRe['prenom'];?>">
							</div>
						</div>
						<div class="form-group">
							<div class="col-md-3">
							<label for="datenaiss" class="control-label pull-right"><i class="glyphicon glyphicon-calendar"></i>&nbsp;Date de naissance:</label></div>
							<div class="col-md-7">
									<input type="date" name="datenaiss" class="form-control" placeholder="Saisissez la  date de naissance" required="" value="<?php echo $tabRe['datenaiss'];?>">
							</div>
						</div>
						<div class="form-group">
							<div class="col-md-3">
							<label for="lieunaiss" class="control-label pull-right">Lieu de naissance:</label></div>
							<div class="col-md-7">
									<input type="text" name="lieunaiss" class="form-control" placeholder="Saisissez le lieu de naissance" required="" value="<?php echo $tabRe['lieunaiss'];?>">
							</div>
						</div>
						<div class="form-group">
							<div class="col-md-3">
							<label for="tel" class="control-label pull-right"><i class="glyphicon glyphicon-ear-phone"></i>&nbsp;Telephone:</label></div>
							<div class="col-md-7">
									<input type="text" name="tel" class="form-control" placeholder="Saisissez le numero de telephone" required="" value="<?php echo $tabRe['tel'];?>" >
							</div>
						</div>
						<div class="form-group">
						<div class="col-md-3"></div>
						<div class="col-md-7">
							<button type="submit" class="btn btn-success btn-block"><i class="glyphicon glyphicon-save"></i>&nbsp;Modifier</button>
						</div>
					</div>
					</form>
				
			
			</div>
		</div>
	</div>
</div>

</div>
</body>
</html>

voici le code pour la récupération de données de la ligne 32 à la ligne 36:

<?php
//affichage du message d'erreur
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//fin d'affichage
session_start();

if(empty($_SESSION['id']) || !isset($_SESSION['id'])){
header('location:accueil.php?msg=1');

}

//inclusion du fichier de connexion
require_once('cn.php');
extract($_POST);

// preparation de la requete pour charger le formulaire
if (isset($_POST['c'])) {

try{

$photo = $_POST['photo'] ?? '';
$extraitnaiss = $_POST['extraitnaiss'] ?? '';
$extraitnat = $_POST['extraitnat'] ?? '';


if($_POST['c']==1){
$ins=$cn->prepare('INSERT INTO etudiant(nom,prenom,sexe,datenaiss,lieunaiss,nationalite,institut,niveau,formation,filiere,departement,tel,email,adress,bourse,annee,photo,section,extraitnaiss,extraitnat) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)');
$ins->execute([$nom,$prenom,$sexe,$datenaiss,$lieunaiss,$nationalite,$institut,$niveau,$formation,$filiere,$departement,$tel,$email,$adress,$bourse,$annee,$photo,$section,$extraitnaiss,$extraitnat]);
header("location:index.php?msg=2");
}elseif ($_POST['c'] == 2) {
$ins=$cn->prepare('UPDATE etudiant SET nom=?,prenom=?,datenaiss=?,lieunaiss=?,tel=? where ide=? ');
$ins->execute($nom,$prenom,$datenaiss,$lieunaiss,$tel,$ide);
header("location:list.php");
}
//gestion des erreurs
}catch(Exeception $e){
echo "Erreur".$e->getMessage();
echo "nom,prenom,sexe,datenaiss,lieunaiss,nationalite,institut,niveau,formation,filiere,departement,tel,email,adress,bourse,annee,photo,section,extraitnaiss,extraitnat";
print_r([$nom,$prenom,$sexe,$datenaiss,$lieunaiss,$nationalite,$institut,$niveau,$formation,$filiere,$departement,$tel,$email,$adress,$bourse,$annee,$photo,$section,$extraitnaiss,$extraitnat]);
}
}
//var_dum de la variable $_POST pour voir ce que mon code reçoit du formulaire...
var_dump($_POST);
?>


Windows / Firefox 109.0

4 réponses

veuillez m'excuser,j'ai oublié d'insérer le message d'erreur

Voici le message:Warning: Trying to access array offset on value of type bool in C:\xampp\htdocs\ALI1\list.php on line 133

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
27 janv. 2023 à 20:51

Bonjour

Commence par appliquer ce qui est indiqué dans ce lien

https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

N'hésite pas non plus à nous préciser à quelle ligne de ton code correspond la ligne 133 indiquée par le message d'erreur...


0

Bonjour, voici la ligne de code qui correspond à la ligne 133

<i class="glyphicon glyphicon-user"></i>&nbsp;Modification de l'etudiant <strong><?php echo $tabRe['nom'].'&nbsp;'.$tabRe['prenom']; ?></strong>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
30 janv. 2023 à 11:24

Vu le message d'erreur, il semble évident que ta variable  $tabRe  ne contient pas ce qui est attendu ...

Si tu as suivi les consignes contenues dans le lien que je t'ai donné .. ça devrait mieux fonctionner !

Si ce n'est pas le cas,  postes ton code ( après avoir bien appliqué les consignes du lien bien entendu... )

PS:  On ne voit aucune trace de l'initialisation de la variable $tabRe  dans le code que tu nous as montré ....

Ne serait-ce pas   $re   que tu souhaiterais utiliser ? 

0

Bonjour! C'est résolu. Merci beaucoup pour votre aide.

voici le code php que j'ai ajouté dans mon fichier list.php.

<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal" aria-hidden="true"> &times; </button>
				<?php 
				$re=$cn->query('SELECT * from etudiant ');
						$tabRe=$re->fetch();
						?>

				<i class="glyphicon glyphicon-user"></i>&nbsp;Modification de l'etudiant
					<strong> <?php echo $tabRe['nom'].'&nbsp;'.$tabRe['prenom']; ?></strong></div>
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
9 févr. 2023 à 14:32

Sauf que ce n'est certainement pas bon..

Plat, comme ça, tu auras toujours que le premier de ta table qui va s'afficher...

0