1 pièce(s) jointe(s)
deux résultats avec une requête pdo
Bonjour.
Je tente de faire deux résultats dans une même requête.
Le deuxième résultat, c'est d'avoir une liste de catégories
pour en faire un menu.
J'ai fais deux requêtes pour obtenir ce résultat.
Voici mon image et le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
<?php
$dbh = new PDO("mysql:host=localhost;dbname=philgalerie", 'root', '');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$formulaire = $dbh->query("SELECT categorie FROM categorie");
$formresultat = $formulaire->fetchAll();
echo '<ul>';
foreach($formresultat as $rowform)
{
echo '<li style="float:left;margin-left:30px"><a href="?catalog='.$rowform['categorie'].'">'.$rowform['categorie'].'</a></li>';
}
echo '</ul><br><br><br>';
$categorie = isset($_GET['catalog']) ? $_GET['catalog'] : 'peinture' ;
$stmt = $dbh->prepare('
SELECT
categorie.categorie,
users.id,
users.firstname,
users.lastname
FROM
categorie
INNER JOIN images ON categorie.id = images.categorieid
INNER JOIN users ON images.usersid = users.id
WHERE
categorie = :categorie
ORDER BY
categorie.id DESC,
users.id DESC
');
$stmt->bindValue(':categorie', $categorie, PDO::PARAM_STR);
$stmt->execute();
if (!$stmt->rowCount() == 0)
{
echo 'Total des enregistrements trouvés selon votre critère : '.$stmt->rowCount();
$cat = "";
while ($row = $stmt->fetchObject())
{
if($row->categorie != $cat)
{
$cat = $row->categorie;
echo '<br><strong>'.$cat.'</strong>';
}
echo '<br>'.$row->firstname.' '.$row->lastname;
}
}
else
{
echo 'Aucun enregistrement trouvé correspondant à votre requête.';
}
?> |
Je suis bloqué à ce stade. C'est possible d'utiliser une seule requête?
Ma prochaine étape serait de faire une pagination alors, je vais avoir
à faire soit encore une requête ou un autre résultat.