Array ( [0] => 00000 [1] => [2] => ) 1

Résolu/Fermé
Busi - Modifié par Busi le 8/05/2016 à 23:11
 Busima - 10 mai 2016 à 16:58
Bonjour les grands, excusez moi du dérangement mais j'ai un souci avec mes codes de mon site que j'avais élaboré avec la syntaxe de mysql_connect mais je suis entrain de faire une migration en PDO actuellement dont la tache n'est pas aisée pour moi car je suis débutant. Lorsque j'eexécute ce code on m'affiche le message suivant dont je ne comprends pas:
Array ( [0] => 00000 [1] => [2] => ) 1
Voici ci-dessous le code de la page:
 

       

En premier lieu voici la page qui comporte le formulaire:
<souligne>voeux.php</souligne>


<code php><code html><! DOCTYPE html>
<html>
    <head><title>voeux</title>
     <link rel="stylesheet" href="sogim.css" />
  <link rel="stylesheet" href="voeux.css" />
  <link rel="stylesheet" href="css/bootstrap.min.css" />
  <link rel="stylesheet" href="css/bootstrap-theme.min.css"/>
 </head>
        <body>
  <div id="bloc_page">
          <?php include('entete.php'); ?>
   <section class="row">
       <article class="col-md-12 col-sm-12 col-xm-12">
                    <h2>Remplissez ces champs et faites nous parvenir votre message svp!</h2>
                    <h3><u>Formulaire:</u></h3>
                    <form name="inscription" method="post" action="result_voeux.php">
            Mr<input type="radio" name="civ" value="Mr"> 
         Mme<input type="radio" name="civ" value="Mme"> 
         Mlle<input type="radio" name="civ" value="Mlle"> </br></br>
                        Votre Nom :    <input type="text" name="nom"/> <br/><br/>
                        Vos prenoms: <input type="text" name="prenom"/> </br><br/>
                        Vos contacts :<input type="text" name="contact"/><br/><br/>
         Votre email : <input type="email" name="email"/><br/>
         <p class="msg">
             <h3><u>Votre Message ici:</u></h3>
                              
                      <textarea name="message" rows="10" cols="45" placeholder="Votre message ici">
          
            </textarea>
            <input type="submit" name="valider" value="Valider"/>
           
         </p>
     </form>
    </article>
   </section>
     </div> 
     <?php
         include ('new_footer.php');
     ?>
     <script src="js/jquery.js"> </script>
        <script src="js/bootstrap.min.js"></script>
</body>
</html>
</code>

Ensuite la page qui traite le formulaire:

result_voeux.php


 <?php 
     
                        try
                                                      {
                                                          //On se connecte à mysql
                                                          $bdd = new PDO ('mysql:host=localhost;dbname=bdsogim','root','');
                                                      }
                                                          catch(Exception $e)
                                                           {
                                                            //En cas d'erreur, on affiche un message et on arrète tout
                                                            die('Erreur:'.$e->get_Message());
                                                        }
                 
     if (isset($_POST['valider']))
     /* if (isset($_POST['model']) and (!empty($_POST['model']))) */
     {
         $type=$_POST['type'];
         $model=$_POST['model'];
      $dimension=$_POST['dimension'];
      $prix=$_POST['prix'];
      $statut=$_POST['statut'];
      $commune=$_POST['commune'];
      $quartier=$_POST['quartier'];
      $localisation=$_POST['localisation'];
      $agence=$_POST['agence']; 
       
         // teste de l'envoi du fichier
                        if (isset($_FILES['photo'])  and  $_FILES['photo']['error']== 0 )
                            {
                                // teste de la grandeur de l'image
                                if ($_FILES['photo']['size'] <= 1000000)
                                  {
                                    // teste de la prise en compte du chemin et de l'extention du fichier
                                    $infosfichier = pathinfo($_FILES['photo']['name']);//on prend le nom du fichier
                                    $extension_upload = $infosfichier['extension']; //on prend l'extension du fichier
                                    $extensions_autorisees = array('jpg', 'jpeg', 'gif','png','JPG', 'JPEG', 'GIF','PNG'); 
         //on prend les extensions autorisées            
         if (in_array($extension_upload, $extensions_autorisees))
                                        {
                                   move_uploaded_file($_FILES['photo']['tmp_name'], 'images/photos/'.basename($_FILES['photo']['name']));
                                            $photo=$_FILES['photo']['name'];
           echo "L'envoi de la photo a bien réussi. Merci!";
                                        }
                                  }
                            }
                                          if(empty($photo))
                                            {
                                             $photo="pasimage1.jpeg";
                                            }            
             // Insertion des données à l'aide d'une requête preparée 
                          $req = $bdd->prepare('INSERT INTO categories(type, model, dimension, prix, statut, commune, quartier, localisation, photo, agence) 
                          VALUES(:type, :model, :dimension, :prix, :statut, :commune, :quartier, :localisation, :photo, :agence)');
        
                          $req->execute(array(
                          'type'=>$_POST['type'], 'model'=>$model, 'dimension'=>$dimension, 'prix'=>$prix, 'statut'=>$statut, 'commune'=>$commune, 
                           'quartier'=>$quartier, 'localisation'=>$localisation, 'photo'=>$photo, 'agence'=>$agence)) or die (print_r($req->errorInfo())); 
        
            if ($req)
               {
             echo 'Enregistrement effectue';
            }
            else
                {
             echo 'Mauvais enregistrement!';
             } 
             
                   if (isset($_POST['photo']))
                    {
                     echo ('operation.php');
                  echo 'Vous avez choisi '.$id_categories;
                 }
               $req->closeCursor();
     }  
                                                          
                 ?>                                                 
                                          
                                           <?php 
              $page = isset($_GET['page']) ? $_GET['page'] : 1;
              $page_offset = ($page - 1) * 5;
              $total ='';
              $pagination ='';
                                                        /* connectbdsogim(); */
               $pagination = $total/5;
               //var_dump();
               $total_element= $bdd->query("SELECT * from categories");
               $total = $total_element->rowCount()or die (print_r($total_element->errorInfo()));
                            
              while($donnees = $reponse->fetch())
                                                            { 
                echo '<table border="1px"; width:400px; height:150px; color="#999";>
                <tr>
                <td>     Numero: '.$donnees['id_categories'].'</br>Type: '.$donnees['type'].'</br>Model: '.$donnees['model'].'</br>Dimension: '.$donnees['dimension'].'</br>Prix: '
                .$donnees['prix'].'</br>Statut: '.$donnees['statut'].'</br>Commune: '.$donnees['commune'].'</br>Quartier: '.$donnees['quartier'].'</br>Référence: '.$donnees['localisation'].' '.$id=$donnees['id_categories'].'</br>Agence: '.$donnees['agence'].
                '</td><td><a href="operation.php?id='.$donnees['id_categories'].'">
                <img src="images/photos/'.$donnees['photo'].'"style=" width:220px; height:150px; color="#0000"; /></a></br></br></td></tr></table>';
                
               echo '<a href="operation.php?id='.$donnees['id_categories'].'"> <img src="images/Reservation02s.GIF" /></a>';
                } 
                                                                $reponse->closeCursor();                
             echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
                                                    for($i=1; $i<=$pagination; $i++) //On fait notre boucle
                                                        {
                                                            if($i==$page) //Si il s'agit de la page actuelle...
                                                                {
                                                                    echo ' [ '.$i.' ] '; 
                                                                } 
                                                                else //Sinon...
                                                                    {
                                                                        echo ' <a href="index.php?page='.$i.'">'.$i.'</a> ';
                                                                    }
                                                        }
                                                    echo '</p>'; 

?></code>




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

Merci d'y penser dans tes prochains messages.

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 mai 2016 à 13:35
Bonjour,

Je pense que ce qui s'affiche provient de ces lignes de code :

 $total_element= $bdd->query("SELECT * from categories");
  $total = $total_element->rowCount()or die (print_r($total_element->errorInfo()));


Que fait un or die après un rowCount ??
De plus.. on évite d'utiliser le rowCount.....
Dixit la doc de php :

Pour la plupart des bases de données, PDOStatement::rowCount() ne retourne pas le nombre de lignes affectées par une requête SELECT


Il est préférable de faire un fetchAll .... et de faire un COUNT dessus
par exemple :
 $sql = "SELECT count(*) as NB from categories";
 $query= $bdd->query($sql);
 $res = $query->fetch();
 $total = $res['NB'];



0
Merci beaucoup Jordan. C'était effectivement la ligne indiquée, mais j'ai pu resoudre le problème avec rowCount(). Je ne sais pas s'il marchera pour toujours en tout cas. Encore merci.
0