Bonjour,
J'aurais besoin de votre aide pour solutionner un problème rencontrer avec le code de mon petit programme de génération automatique de document pdf.
Voici un résumé du projet :
J'ai 3 tables dans SQL : conseiller, signataire, defunt.
Une liaison entre signataire (signataire_id) et conseiller(ID) via clef etrangere
et idem entre signataire(ID) et defunt(signataire_id)
Je dois renseigner (via form) chaque table. La table defunt est renseigné via ma page defunt2.php,
qui renvoie vers une page pageDocument.php (sur laquelle je selectionne le document à générer), qui elle même renvoie vers ma page pouvoir.php (qui génère le pdf via fpdf).
C'est la que la coince : j'ai l'erreur "Warning: Trying to access array offset on value of type bool in C" sur la page pouvoir.php.
A priori, cela vient d'un fecth() qui renvoie false en ligne 69
Toute aide est la bienvenue... Merci
Voici la page pouvoir.php
Voici le code pageDocument.php
Voici le code de la page defunt2.php
J'aurais besoin de votre aide pour solutionner un problème rencontrer avec le code de mon petit programme de génération automatique de document pdf.
Voici un résumé du projet :
J'ai 3 tables dans SQL : conseiller, signataire, defunt.
Une liaison entre signataire (signataire_id) et conseiller(ID) via clef etrangere
et idem entre signataire(ID) et defunt(signataire_id)
Je dois renseigner (via form) chaque table. La table defunt est renseigné via ma page defunt2.php,
qui renvoie vers une page pageDocument.php (sur laquelle je selectionne le document à générer), qui elle même renvoie vers ma page pouvoir.php (qui génère le pdf via fpdf).
C'est la que la coince : j'ai l'erreur "Warning: Trying to access array offset on value of type bool in C" sur la page pouvoir.php.
A priori, cela vient d'un fecth() qui renvoie false en ligne 69
Toute aide est la bienvenue... Merci
Voici la page pouvoir.php
<?php
require('session.php');
require('connexionBdd.php');
require('../fonctions/fonctions.php');
function RoundedRect($x, $y, $w, $h, $r, $style = '')
{
$k = $this->k;
$hp = $this->h;
if($style=='F')
$op='f';
elseif($style=='FD' || $style=='DF')
$op='B';
else
$op='S';
$MyArc = 4/3 * (sqrt(2) - 1);
$this->_out(sprintf('%.2F %.2F m',($x+$r)*$k,($hp-$y)*$k ));
$xc = $x+$w-$r ;
$yc = $y+$r;
$this->_out(sprintf('%.2F %.2F l', $xc*$k,($hp-$y)*$k ));
$this->_Arc($xc + $r*$MyArc, $yc - $r, $xc + $r, $yc - $r*$MyArc, $xc + $r, $yc);
$xc = $x+$w-$r ;
$yc = $y+$h-$r;
$this->_out(sprintf('%.2F %.2F l',($x+$w)*$k,($hp-$yc)*$k));
$this->_Arc($xc + $r, $yc + $r*$MyArc, $xc + $r*$MyArc, $yc + $r, $xc, $yc + $r);
$xc = $x+$r ;
$yc = $y+$h-$r;
$this->_out(sprintf('%.2F %.2F l',$xc*$k,($hp-($y+$h))*$k));
$this->_Arc($xc - $r*$MyArc, $yc + $r, $xc - $r, $yc + $r*$MyArc, $xc - $r, $yc);
$xc = $x+$r ;
$yc = $y+$r;
$this->_out(sprintf('%.2F %.2F l',($x)*$k,($hp-$yc)*$k ));
$this->_Arc($xc - $r, $yc - $r*$MyArc, $xc - $r*$MyArc, $yc - $r, $xc, $yc - $r);
$this->_out($op);
}
function _Arc($x1, $y1, $x2, $y2, $x3, $y3)
{
$h = $this->h;
$this->_out(sprintf('%.2F %.2F %.2F %.2F %.2F %.2F c ', $x1*$this->k, ($h-$y1)*$this->k,
$x2*$this->k, ($h-$y2)*$this->k, $x3*$this->k, ($h-$y3)*$this->k));
}
function headerPdf(){
$this->Image('',10,6,17);
$this->SetFont('Times','B',18);
$this->SetY(8);
$this->MultiCell(0,7,"",0,'C');
}
function footer() {
$this->SetY(-20);
$this->SetFont('Arial','',8);
$this->MultiCell(0,3,"",0,'C');
}
if(isset($_GET['id']))
$ids = $_GET['id'];
else
$ids = 0;
$requeteDefunt = $con->query("SELECT * FROM defunt WHERE id=$ids");
$DEFUNT = $requeteDefunt->fetch();
var_dump($DEFUNT);
$civiliteDefunt = $DEFUNT['civiliteDefunt'];
$nomDefunt = $DEFUNT['nomDefunt'];
$nomNaissanceDefunt = $DEFUNT['nomNaissanceDefunt'];
$prenomDefunt = $DEFUNT['prenomDefunt'];
$dateDecesDefunt = $DEFUNT['dateDecesDefunt'];
$heureDecesdefunt = $DEFUNT['heureDecesDefunt'];
$infoPouvoir = $con->query("SELECT *
FROM signataire,conseiller,defunt
WHERE defunt.signataire_id=signataire.ID
AND signataire.conseiller_id=conseiller.ID
AND signataire_id=$ids");
$POUVOIR=$infoPouvoir->fetch();
$civiliteDeclarant = ucfirst($POUVOIR['civiliteDeclarant']);
$nomDeclarant = strtoupper($POUVOIR['nomDeclarant']);
$prenomDeclarant = strtoupper($POUVOIR['prenomDeclarant']);
$adresseDeclarant = strtolower($POUVOIR['adresseDeclarant']);
$cpDeclarant = $POUVOIR['cpDeclarant'];
$villeDeclarant = strtoupper($POUVOIR['villeDeclarant']);
$qualiteDeclarant = strtoupper($POUVOIR['qualiteDeclarant']);
$adresseConsFuneraire = strtolower($POUVOIR['adresseConsFuneraire']);
$cpConsFuneraire = $POUVOIR['cpConsFuneraire'];
$villeConsFuneraire = strtoupper($POUVOIR['villeConsFuneraire']);
require_once('../fpdf/fpdf.php');
$PDF=new FPDF('P','mm','A4');
headerPdf("Content-Type: text/html; charset=iso-8859-1");
$PDF->AddPage();
$PDF->SetY(30);
$PDF->SetFont('Arial','B',13);
$PDF->RoundedRect(10, 30,190, 8, 4, 'D');
$PDF->Cell(0,8,"POUVOIR OU MANDAT",0,1,'C');
$PDF->SetX(30);
$PDF->SetY(50);
$PDF->SetFont('Arial','',12);
$PDF->Cell(0,6,"Je soussigné(e) ".' '.$civiliteDeclarant.' '.$nomDeclarant.' '.$prenomDeclarant,0,1,'L');
$PDF->SetY(58);
$PDF->Cell(0,6,"demeurant ".' '.$adresseDeclarant.' '.$cpDeclarant.' '.$villeDeclarant,0,1,'L');
$PDF->SetY(66);
$PDF->Cell(0,6,"Agissant en qualité de ".' '.$qualiteDeclarant,0,1,'L');
$PDF->SetY(74);
$PDF->Cell(0,6,"et ayant qualité pour pourvoir aux funérailles de ",0,1,'L');
$PDF->SetY(82);
$PDF->SetFont('Arial','B',12);
$PDF->Cell(0,6,$civiliteDefunt.' '.$nomDefunt.' née '.$nomNaissanceDefunt.' '.$prenomDefunt,0,1,'C');
$PDF->SetY(90);
$PDF->SetFont('Arial','',12);
$PDF->Cell(0,6,"décédé(e) le ".' '.$dateDecesDefunt." à ".$heureDecesDefunt,0,1,'L');
$PDF->SetY(98);
$PDF->Cell(0,8,"",0,1,'L');
$PDF->SetY(106);
$PDF->Cell(0,6,$adresseConsFuneraire.' '.$cpConsFuneraire.' '.$villeConsFuneraire,0,1,'C',);
$PDF->SetY(122);
$PDF->MultiCell(0,6,".",0,'J',false);
$PDF->SetY(155);
$PDF->MultiCell(0,6,"",0,'J',false);
$PDF->SetY(175);
$PDF->Cell(0,6,"Fait à ".' '.$villeConsFuneraire.' le '.date('d/m/Y'),0,1,'L',);
$PDF->SetY(190);
$PDF->SetFont('Arial','B',12);
$PDF->Cell(0,6,"Signature suivi de la mention - Pour valoir ce que de droit",0,1,'L',);
$PDF->Output();
?>
Voici le code pageDocument.php
<?php
require_once('session.php');
?>
<?php
include("../fonctions/fonctions.php");
if(isset($_GET['ids']))
$ids=$_GET['ids'];
else
$ids=0;
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php include("../pages/menu.php"); ?>
<span class="titre1">Séléctionner le document à imprimer</span>
<div class="grid">
<p class="grid-item">
<a href="pouvoir.php?id=<?php echo $ids?>">
Pouvoir/Mandat
</a>
</p>
</p>
</div>
</body>
</html>
Voici le code de la page defunt2.php
<?php
require_once('session.php');
?>
<?php
include("../fonctions/fonctions.php");
require('connexionBdd.php');
if(isset($_GET['motCle']))
$motCle=$_GET['motCle'];
else
$motCle="";
if(isset($_GET['signataire_id']))
$idSignataire=$_GET['signataire_id'];
else
$idSignataire=0;//Tous les signataires
if(isset($_GET['conseiller_id']))
$idConseiller=$_GET['conseiller_id'];
else
$idConseiller=0;//Tous les conseillers
$and_nom_prenom=" AND (de.nomDefunt like '%$motCle%' OR prenomDefunt like '%$motCle%')";
$and_signataire="";
if($idSignataire==0)//Tous les signataires
$and_signataire="";
else //$idSignataire!=0: La requete doit prendre en compte le signataire séléctionnée
$and_signataire=" AND co.conseiller_id=$idSignataire";
$and_conseiller="";
if($idConseiller==0) $and_conseiller=""; //Tous les conseillers
$requete_defunt="SELECT
de.ID, de.dateDecesDefunt,de.heureDecesDefunt,de.lieuDeces,de.nom_medecin,de.civiliteDefunt,de.nomDefunt,de.nomNaissanceDefunt,de.prenomDefunt,de.adresseDefunt
,de.villeDefunt,de.cpDefunt,de.dateNaissanceDefunt,de.villeNaissanceDefunt,de.statutDefunt,de.nationaliteDefunt,de.nbrEnfantDefunt,de.professionDefunt,de.statutProDefunt,de.statutDefunt2,de.docAdmin
,de.nomEnfant1,de.dateNaisEnfant1,de.lienEnfant1,de.adresseEnfant1,de.nomEnfant2,de.dateNaisEnfant2,de.lienEnfant2,de.adresseEnfant2,de.nomEnfant3,de.dateNaisEnfant3,de.lienEnfant3,de.adresseEnfant3
,de.nomEnfant4,de.dateNaisEnfant4,de.lienEnfant4,de.adresseEnfant4,de.nomEnfant5,de.dateNaisEnfant5,de.lienEnfant5,de.adresseEnfant5,de.nomEnfant6,de.dateNaisEnfant6,de.lienEnfant6,de.adresseEnfant6
,de.nomPereDefunt,de.prenomPereDefunt,de.profPereDefunt,de.statutPereDefunt,de.nomMereDefunt,de.prenomMereDefunt,de.profMereDefunt,de.statutMereDefunt,de.etatMat,de.conjointDefunt,de.dateNaisEpDefunt
,de.adresseConjoint,de.dateMarDefunt,de.villeMarDefunt,de.dateDivDefunt,de.villeDivDefunt,de.dateDecConjDefunt,de.villeDecConjDefunt,de.dateSoins,de.heureSoins,de.natureBois,de.tailleCercueil,de.dateTavmeb
,de.heureTavmeb,de.lieuRepCorps,de.heureArriveFune,de.dateTapmeb,de.heureTapmeb,de.lieuCerem,de.dateCeremonie,de.heureCeremonie,de.natCerem,de.typeCerem,de.nomCimetiere,de.villeCimetiere,de.dateInhumation
,de.heureInhumation,de.lieuCrema,de.dateArriveCrema,de.heureArriveCrema,de.dateCrema,de.heureCrema,de.destCendres,de.valConserurne,de.jourRemiseUrne,de.heureRemiseUrne,de.nomRetraitUrne,de.presFamille
,de.dateDispersionCendre,de.heureDispersionCendre,de.villeDepartUrne,de.villeArriveUrne,de.frontiereUrne,de.qualiteDeclarant3,de.objectifOuverture,de.dateInterventionMarbrerie
,de.heureInterventionMarbrerie,de.sectionConcession,de.rangConcession,de.numeroTombe,de.dernPersInhum,de.lienConcession,de.gravureDefunt,de.dateExhum,de.heureExhum,de.typeExhum1,de.nomExhum1,de.dateDecesExhum1
,de.lieuDecesExhum1,de.typeExhum2,de.nomExhum2,de.dateDecesExhum2,de.lieuDecesExhum2,de.typeExhum3,de.nomExhum3,de.dateDecesExhum3,de.lieuDecesExhum3,de.cimExhum,de.emplacementExhum,de.choixReinhum,de.newCimExhum
,de.newEmplacementExhum,de.nomMandataire,de.prenomMandataire,de.nomNaisMandataire,de.adresseMandataire,de.cpMandataire,de.villeMandataire,de.telMandataire,si.nomSignataire, co.nomConseiller
FROM defunt de,signataire si,conseiller co
WHERE de.signataire_id=si.ID AND si.conseiller_id=co.ID
$and_nom_prenom
$and_signataire
$and_conseiller";
//echo $requete_signataire;
$result_requete_defunt=$con->query($requete_defunt);
$tous_les_defunts=$result_requete_defunt->fetchAll();
$nbr_defunt=count($tous_les_defunts);
$requete_signataires="SELECT * FROM signataire";
$result_requete_signataires=$con->query($requete_signataires);
$tous_les_signataires=$result_requete_signataires->fetchAll();
?>
<!DOCTYPE html>
<html lang="fr">
<head>
</head>
<body>
<div id="wrapper">
<?php include('menu.php'); ?>
<div class="container">
<div class="panel panel-success espace60">
<div class="panel-heading">Rechecher les défunts</div>
<div class="panel-body">
<form class="form-inline" >
<!-- ******************** Début Formulaire de recherche des défunts ***************** -->
<div class="form-group">
<label> Signataire: </label>
<select class="form-control" name="signataire_id"
onChange="this.form.submit();" >
<option value=0>Tous les signataires</option>
<?php foreach($tous_les_signataires as $signataire) {?>
<option
value="<?php echo $signataire['ID'] ?>"
<?php if($signataire['ID']===$idSignataire) echo "selected"?> >
<?php echo $signataire['nomSignataire'] ?>
</option>
<?php } ?>
</select>
<input type="text" name="motCle"
value="<?php echo $motCle ?>"
class="form-control"
placeholder="Nom ou prénom">
<label class="radio-inline">
<input type="radio"
value="0"
<?php if($idConseiller==0) echo 'checked'?>
onChange="this.form.submit();"
name="conseiller_id">Tous les conseillers
</label>
<button class="btn">
<i class="glyphicon glyphicon-search"></i>
</button>
</div>
</form>
<!-- ******************** Fin Formulaire de recherche des stagiaires ***************** -->
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">Liste des défunts (<?php echo $nbr_defunt ?> défunts)</div>
<div class="panel-body">
<table class="table table-striped">
<thead>
<tr>
<th> Id </th> <th> Nom du déclarant </th> <th> Date décès </th> <th> Nom défunt </th>
<th> Nom épouse </th> <th> prénom </th> <th> ville </th> <th> Actions</th>
</tr>
</thead>
<tbody>
<?php foreach($tous_les_defunts as $le_defunt){?>
<tr>
<td><?php echo $le_defunt['ID'] ?> </td>
<td><?php echo $le_defunt['nomSignataire'] ?> </td>
<td><?php echo $le_defunt['dateDecesDefunt'] ?> </td>
<td><?php echo $le_defunt['nomDefunt'] ?> </td>
<td><?php echo $le_defunt['nomNaissanceDefunt'] ?> </td>
<td><?php echo $le_defunt['prenomDefunt'] ?> </td>
<td><?php echo $le_defunt['villeDefunt'] ?> </td>
<td>
<a class="btn"
href="editerDefunt.php
?id =<?php echo $le_defunt['ID'] ?>
&signataire_id =<?php echo $idSignataire ?>
&conseiller_id =<?php echo $idConseiller ?>" >
<span class="glyphicon glyphicon-pencil"></span>
</a>
<?php if($_SESSION['utilisateur']['ROLE']=="ADMIN"){?>
<a onclick="return confirm('Etes vous sur de vouloir supprimer ce défunt')"
href="supprimerDefunt.php?id=<?php echo $le_defunt['ID'] ?>"
class="btn">
<span class="glyphicon glyphicon-trash"></span>
</a>
<?php } ?>
<a class="btn"
href="pageDocument.php
?id=<?php echo $le_defunt['ID'] ?>">
<span class="glyphicon glyphicon-print"></span>
</a>
</td>
</tr>
<?php } ?>
</table>
</tbody>
<a href="nouveaudefunt.php" class="btn btn-primary">
<span class="fa fa-plus"></span> NOUVEAU DEFUNT
</a>
</div>
</div>
</div>
</body>
</html>