J'ai donc une table appelée Commandes.

Dans ce tableau j'ai

Ordernum

Nom

Chaque fois que j'ajoute une nouvelle commande, cela crée un nouveau numéro de commande, le nom ne change que si je le change ... Donc par exemple ..

Donald pourrait avoir 20 ordres différents dans ce tableau.

J'essaye maintenant d'afficher tous les numéros de commande pour Donald

Ceci est mon code actuel.

<?php   
    $blue =  $_SESSION['name']; // This is the customers name
    $sqll = "SELECT * FROM orders WHERE name = :blah";
    $qq=$con->prepare($sqll); 
    $qq->bindparam(":blah", $blue);
    $qq->execute();
    $u=$qq->fetch(PDO::FETCH_ASSOC); 
?>
<div class="sectionContent">
    <div class="sectionFull">
        <div class="sectionOneHalf">
        <fieldset>
            <legend>Orders</legend>
            <ol>
                <li>
                    <label>Orders</label>
                    // Here I am trying to display all the different order numbers in teh table that are listed under his name
                     <div class="OrdersContainer">
                        <?php echo $u['ordernum'];?>
                     </div>
                </li>
            </ol>
            <br>
        </fieldset>
    </div>
</div>

Le problème est que lorsque j'essaye de lister ces commandes maintenant ... je n'en reçois qu'une qui apparaît.

Je dois tous les afficher pour ce nom de personne spécifique

0
Kmiles1990123 24 déc. 2015 à 18:43

5 réponses

Meilleure réponse

Le problème est que vous récupérez une seule ligne de l'ensemble de résultats. Parcourez l'ensemble de résultats pour afficher toutes les commandes, comme ceci:

while($u=$qq->fetch(PDO::FETCH_ASSOC)){
    // display orders 
} 

Votre code devrait être comme ceci:

// your code

<li>
    <label>Orders</label>

    <div class="OrdersContainer">
        <?php 
            while($u=$qq->fetch(PDO::FETCH_ASSOC)){
                // display orders
                echo $u['ordernum'] . "<br />";
            } 
        ?>

    </div>
</li>

// your code
1
Rajdeep Paul 24 déc. 2015 à 15:55

Changer fetch en fetchall devrait résoudre votre problème, vous semblez ne récupérer qu'une seule ligne, c'est donc tout ce que vous obtiendrez.

0
Chris 24 déc. 2015 à 15:46

Au lieu de

$u=$qq->fetch(PDO::FETCH_ASSOC);

Utilisation

$u=$qq->fetchAll(PDO::FETCH_ASSOC);
0
Prateek Mishra 24 déc. 2015 à 15:51

Vous pouvez essayer ceci:

$blue =  $_SESSION['name']; // This is the customers name
$sqll = "SELECT * FROM orders WHERE name = :blah";
$qq=$con->prepare($sqll); 
$qq->bindparam(":blah", $blue);
$qq->execute();
while ($row = $qq->fetch(PDO::FETCH_ASSOC)) {
// your html
echo $row['ordernum'] . "\n";
// your html
}

Quel changement?

Ajout d'une boucle while

0
devpro 24 déc. 2015 à 15:58
<?php   
    $blue =  $_SESSION['name']; // This is the customers name
    $sqll = "SELECT * FROM orders WHERE name = :blah";
    $qq=$con->prepare($sqll); 
    $qq->bindparam(":blah", $blue);
    $qq->execute();    
?>
<div class="sectionContent">
<div class="sectionFull">
    <div class="sectionOneHalf">
        <fieldset>
            <legend>Orders</legend>
                <ol>
                    <li>
                        <label>Orders</label>
                        // Here I am trying to display all the different order numbers in teh table that are listed under his name
                        <div class="OrdersContainer">
                        <?php 
                        while($u=$qq->fetch(PDO::FETCH_ASSOC))
                        {                                      
                            echo $u['ordernum'];
                        }
                        ?>
                        </div>
                    </li>
                </ol>
                <br>
        </fieldset>
    </div>
</div>
</div>
1
devpro 24 déc. 2015 à 16:30