Error setFetchMode()

Bonjour,

J'ai un soucis avec la classe PDO, voici la requête :

require_once('./Conne.php');

$sql = "SELECT employe.NUMEMP, employe.NOMEMP, reparation.NOREPARATION, reparation.NOTYPE, reparation.DATEREPARATION";
$sql = $sql."FROM intervenir I INNER JOIN reparation R ON I.NOREPARATION=R.NOREPARATION, employe, reparation";
$sql = $sql."WHERE I.NUMEMP = employe.NUMEMP";
$sql = $sql." ORDER BY 1,2,4";

$req = $connexion->query($sql);
$req->setFetchMode(PDO::FETCH_OBJ);

$date = date("d-m-Y");
$heure = date("H-i");

et j'ai l'error :
( ! ) Fatal error: Call to a member function setFetchMode() on a non-object in C:\wamp\www\TpUn\PDF\ListeDesReparations.php on line 12

Merci votre aide

5 réponses

  1. Modérateur
    Salut,

    Puis je voir le code de ton fichier Conne.php?
    1. <?php
      try
      {
      $dns = 'mysql:host=localhost;dbname=TpUn';
      $utilisateur = 'TpUn';
      $motDePasse = 'TpUn';
      $connexion = new PDO( $dns, $utilisateur, $motDePasse );
      }
      catch ( Exception $e )
      {
      echo "Connection à MySQL impossible : ", $e->getMessage();
      die();
      }
      ?>
      1. Bonsoir

        Ta requête est incorrecte. Tu oublies des espaces en faisant la concaténation :
        Il n'y en a pas entre DATEREPARATION et FROM ni entre reparation et WHERE.
        Un simple echo $sql; t'aurait permis de le voir.
        1. MERCI beaucoup !!! Maintenant nouveau problème mais je suis en plein dedans !
          1. Maintenant j'ai un problème, je n'arrive pas à faire ma liste :

            $date = date("d-m-Y");
            $heure = date("H-i");

            require_once('/classes/fpdf.php');

            $pdf = new FPDF('P','cm','A4');
            $marge = 3;
            $largeurLig = 21- (2 * $marge);

            $nbCol =5;
            $largeurCol = $largeurLig / $nbCol;

            $pdf->AddPage();

            $pdf->SetFillColor(96,96,96);
            $pdf->SetTextColor(0,0,0);

            $pdf->SetFont('Times','','1*2');
            $pdf->SetXY($marge,1);
            $pdf->Cell($largeurLig,1,'Bienvenue sur le site EMPLOYE',1,1,'C');

            $dateFormat = date("d-m-Y");
            $heure = date("H:i");
            $pdf->SetFont('Arial','',12);
            $pdf->SetXY($marge,$pdf->GetY());
            $pdf->Cell($largeurLig,2,'Nous sommes le '.$dateFormat.' et il est '.$heure,0,1,'C');

            $header=array(utf8_decode('Num employé'),utf8_decode('Nom employé'),utf8_decode('Num réparation'),utf8_decode('Date réparation'),utf8_decode('Type réparation'));
            $pdf->SetXY($marge,$pdf->GetY()+1);

            for($i=0;$i<sizeof($header);$i++)
            {
            $pdf->cell($largeurCol,1,$header[$i],1,0,'C',1);
            }

            $pdf->SetFillColor(0xdd,0xdd,0xdd);
            $pdf->SetTextColor(0,0,0);
            $pdf->SetFont('Times','',10);
            $pdf->SetXY($marge,$pdf->GetY()+1);
            $fond=0;
            $nbRep=0;
            $ligne=$req->fetch();
            $savNoType='';
            $savNoReparationBateau='';
            while($ligne)
            {
            If($savNoType==$ligne->NOTYPE AND $savNoReparationBateau==$ligne->NOREPARATION)
            {
            $pdf->Cell($largeurCol,1,'','Lr',0,'C',$fond);
            $pdf->Cell($largeurCol,1,'','Lr',0,'L',$fond);
            }
            else
            {
            $pdf->Cell($largeurCol,1,$ligne->NUMEMP,1,0,'C',$fond);
            $pdf->Cell($largeurCol,1,$ligne->NOMEMP,1,0,'L',$fond);
            $savNoType=$ligne->NOTYPE;
            }
            $pdf->Cell($largeurCol,1,$ligne->NOREPARATION,1,0,'C',$fond);
            $pdf->Cell($largeurCol,1,$ligne->DATEREPARATION,1,0,'C',$fond);
            $pdf->Cell($largeurCol,1,$ligne->NOTYPE,1,0,'C',$fond);
            $fond=!$fond;
            $nbRep = $nbRep + 1;
            $ligne = $req->fetch();
            }

            $req->closeCursor();
            $pdf->SetXY($marge,$pdf->GetY());
            $pdf->Cell(2*$largeurCol,1,'','T',0,'C');
            $pdf->SetXY($marge,$pdf->GetY()+1);
            $pdf->Cell($largeurLig,1,utf8_decode('Nombre d employé : ').$nbRep,0,0,'C');
            $pdf->SetXY($marge,$pdf->GetY()+1);

            $pdf->Output();
            ?>