Probleme de consulter

Résolu
Bonjour,
En faite j'ai un probleme puisque mon code marche mais en voulant afficher chaque ligne depuis ma table il affiche la premiere ligne d'information depuis ma table


<?php

$req = "select * from division";
$requete= $connexion->prepare($req);
$requete->execute();
$ligne=$requete->fetch(PDO::FETCH_OBJ);
?>

<h2 align="center"> Reférence de la division </h2>

<table class="liste_consulter">
<tr>
<th><strong> Numero division </strong> </th>
<th><strong> Nom division </strong> </th>
<th><strong> Numero departement </strong> </th>

</tr>
<tr>
<td> <?php echo $ligne->numdiv ?> </td>
<td> <?php echo $ligne->nomdiv ?></td>
<td> <?php echo $ligne->nomdept ?></td>
</tr>
</table>
<br/>
<form id="retour" action="index.php?page=modules/division/index.php" method="">
<input id ="valider" name="valider" type="submit" value="Retour" />
</form>


et desormais j vais tenir compte du code puisque j viens de telecharger la charte

6 réponses

  1. Modérateur
    Je ne comprend pas...
    TU veux afficher TOUTES les lignes retournées par ta requête c'est ça ?

    $ligne=$requete->fetch(PDO::FETCH_OBJ);

    Là.. en effet.. tu ne prend que la première..

    Si tu les veux toutes.. il faut utiliser une boucle.

    $result = $requete->fetchAll() ;
    
    //Appercu du contenu de l'array
    print_r($result);
    
    // lecture de chaque Ligne :
    foreach ($result  as $row) {
        print $row;
    }
    


    Après.. pour la manipulation.. il suffit juste que tu mettes la création de ton code html DANS la boucle qui parcoure le tableau (l'array).

    en gros :
    <?php
    // lecture de chaque Ligne :
    foreach ($result  as $row) {
    ?>
    <tr>
         <td> <?php echo $row['numdiv'] ?> </td>
         <td> <?php echo $row['nomdiv'] ?></td>
         <td> <?php echo $row['nomdept'] ?></td>
    </tr>
    <? php 
    }
    ?>
    

    1. Modérateur
      Edit : J'évite de "jongler" avec les balises PHP .. donc je préfère écrire :
      <?php
      // lecture de chaque Ligne :
      foreach ($result  as $row) {
      echo "<tr>
                  <td>".$row['numdiv']."</td>
                  <td> ".$row['nomdiv']."</td>
                  <td> ".$row['nomdept']."</td>
                </tr>";
      }
      ?>
      
      
      
      
    2. @jordane45je vous comprend pas puisque il y a un image devant ligne sur mon index et j veux en cliquant sur une ligne qu ça m'affiche cette ligne ainssi de suite
    3. Modérateur
      @ZedrofLà c'est moi qui ne te comprend pas...

      Peux tu essayer de reformuler plus précisément ( quit à mettre un petit exemple) de ce que tu souhaites faire ?

      PS: Pour les balises de code tu y es presque.... mais si tu regardes bien.. à droite de l'icone.. tu as une petite flèche.. elle te permet de choisir le LANGAGE ( ici PHP ).
      ;-)
  2. Modérateur
    Donc.. tu cliques sur la loupe ... ça t'ouvre une page où se tu souhaites afficher les infos .. c'est bien ça ?

    Donc :
    a mon avis .. Si tu veux afficher les données d'une ligne en particulier.. il te manque un WHERE dans ta requête

    $req = "SELECT * 
                 FROM division
                WHERE   nom_du_champ = '$une_valeur' ";
    


    A toi de remplacer le nom du champ ... et la valeur .. par ce qu'il faut...

    1. vraiment j comprend pas ce que vous voulez dire par
      
       '$une_valeur'
      
      


      puisque j l'ai remplacer par une valeur du nomdiv ça me donner erreur et j'ai essaye d'execute la requete dans ma base sans execute pas.
      1. Modérateur
        Reprenons depuis le début. .

        montre le code que tu utilises pour envoyer vers ta page (le code de ton bouton "loupe")
        1. mon code loupe
          <?php
          
          
          $req = "select * from division";
          $requete= $connexion->prepare($req);
          $requete->execute();
          	$ligne=$requete->fetch(PDO::FETCH_OBJ);
          ?>
          
          <h2 align="center"> Reférence de la division </h2>
          
          <table class="liste_consulter">
          	<tr>
          		<th><strong> Numero division </strong> </th>
          		<th><strong> Nom division </strong> </th>
          		<th><strong> Numero departement </strong> </th>
          
          	</tr>
          	<tr>
          		<td> <?php echo $ligne->numdiv ?> </td>
          		<td> <?php echo $ligne->nomdiv ?></td>
          		<td> <?php echo $ligne->nomdept ?></td>
          	</tr>
          </table>
          <br/>
          <form id="retour" action="index.php?page=modules/division/index.php" method="">
          <input id ="valider" name="valider" type="submit" value="Retour" />
          </form>
          	
          
          1. Modérateur
            Ça c'est le code de la page qui s'affiche UNE FOIS QUE TU AS CLIQUÉ sur la loupe. .pas le code du bouton. ..
            moi c'est le code de la page d'avant que je veux. ..
          2. @jordane45c'est ça le code dont si tu clic n'importe quel loupe sur l'image dont j vous montre elle renvoie automatiquement l'infos de la premiere
          3. @Zedrofc'est comme en cliquant sur chaque loupe veut dire clic sur la premiere loupe
          4. Modérateur
            On est d'accord que quand tu cliques sur une loupe..ca t'amène sur une page *correspondant au code que tu nous donnes..) qui est censée afficher les informations de la ligne correspondante a la loupe ccliquée ?

            donc..quel est le code de ta page d'origine (celle qui contient toute ta liste..avec les loupes) ?
        2. c'est mon code qui affiche tout les listes
           <?php
           
          	$req="select  * from division ";
          	
          	$requete=$connexion->prepare($req);
          	
          	$requete->execute();
          	
          	
           ?>
           <h2 align='center'><strong> Liste des Divisions </strong></h2>
           <span id="add">
           <a href="index.php?page=modules/division/new.php"><strong> Ajouter un Division </strong></a>
           </span><br/><br/>
           <table class="liste"> 
          		<tr>
          			<th>Numero division</th>
          			<th>Nom division</th>
          			<th>Numero departement</th>
          			<th>Action</th>
          		
          		</tr>
          		
          		<?php
          		while ($ligne=$requete->fetch(PDO::FETCH_OBJ)){
          		?>
          		<tr>
          		
          		<td ><?php echo $ligne->numdiv?></td>
          		<td ><?php echo $ligne->nomdiv?></td>
          		<td ><?php echo $ligne->nomdept?></td>
          		
          		<td> 
          		<a href="index.php?page=modules/division/consulter.php&id=<?php echo $ligne->numdiv?>">
          		
          		<img src="web/images/consulter.png" width="" height="" title="Consulter le division">
          		
          		</a>
          		
          		<a href="index.php?page=modules/division/edit.php&id=<?php echo $ligne->numdiv?>">
          		
          			<img src="web/images/modifier.png" width="" height="" title="Modifié les divisions">
          		</a>	
          		
          		<a href="index.php?page=modules/division/supprimer.php&id=<?php echo $ligne->numdiv?>">
          		<span onclick="if(confirm('voulez vous supprimer cet division ?')) mettreAjourDiv('modules/division/suppression.php','corps', '<?php echo $ligne->numdiv ?>')">
          		<img src="web/images/supprimer.png" width="" height="" title="">
          		
          		</span>
          		</a>
          		
          		</td>
          		</tr>
          			
          		<?php
          		}
          		?>
          
          </table>
          
          1. Modérateur
            Donc, il semble bien que tu passes un paramètre à ton autre page : id

            		<a href="index.php?page=modules/division/consulter.php&id=<?php echo $ligne->numdiv?>">
            		<img src="web/images/consulter.png" width="" height="" title="Consulter le division">
            		</a>
            

            Il faut donc t'en servir dans ta requête :

            <?php
            
            // recup de l' ID passe en GET
            $id = isset($_GET['id'])?$_GET['id']:NULL;
            
            if($id){
            $req = "SELECT * 
                         FROM division
                         WHERE numdiv ='$id' ";
            $requete= $connexion->prepare($req);
            $requete->execute();
            $ligne=$requete->fetch(PDO::FETCH_OBJ);
            }else{
             echo " <br> AUCUN ID ";
             print_r($_GET);
            }
            ?>
            
            <h2 align="center"> Reférence de la division </h2>
            
            <table class="liste_consulter">
            	<tr>
            		<th><strong> Numero division </strong> </th>
            		<th><strong> Nom division </strong> </th>
            		<th><strong> Numero departement </strong> </th>
            
            	</tr>
            	<tr>
            		<td> <?php echo $ligne->numdiv ?> </td>
            		<td> <?php echo $ligne->nomdiv ?></td>
            		<td> <?php echo $ligne->nomdept ?></td>
            	</tr>
            </table>
            <br/>
            <form id="retour" action="index.php?page=modules/division/index.php" method="">
            <input id ="valider" name="valider" type="submit" value="Retour" />
            </form>
            
          2. @jordane45ça marche
            Merci jordane45... je découvre php et c'est cool. je marque ce sujet comme résolu et j'en crée un nouveau