Plusieurs requêtes sql via PDO, pas de résultat mais pas d'erreur...
Résolu/Fermé
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
-
3 févr. 2021 à 11:02
Recoh Messages postés 36 Date d'inscription dimanche 19 juillet 2020 Statut Membre Dernière intervention 2 mars 2021 - 3 févr. 2021 à 14:12
Recoh Messages postés 36 Date d'inscription dimanche 19 juillet 2020 Statut Membre Dernière intervention 2 mars 2021 - 3 févr. 2021 à 14:12
A voir également:
- Plusieurs requêtes sql via PDO, pas de résultat mais pas d'erreur...
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
- Erreur 1001 outlook - Accueil - Bureautique
- Resultat foot - Télécharger - Vie quotidienne
3 réponses
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
Modifié le 3 févr. 2021 à 11:55
Modifié le 3 févr. 2021 à 11:55
J'ai repris le code dans une page à part pour la première variable :
Et ça a fonctionné :
Je vais essayer de résoudre tous les champs à partir de ce "modèle"...
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); try{ $bdd =new PDO('mysql:host=sql.free.fr; dbname=xxxx; charset=utf8', 'xxxx', 'xxxx'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } $sql = "SELECT descriptif_menu FROM menus WHERE menu = :menu;"; $dm1 = array(':menu'=>1); try{ $requete = $bdd -> prepare($sql) ; $requete->execute($dm1) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } //on stocke le résultat de la requête dans un array $row = $requete->fetch(); $dm1 = !empty($row) ? $row['descriptif_menu'] : ""; ?> <!Doctype> <html> <head> <meta charset="utf-8"> <title>Ton titre</title> </head> <body> <h2 align="center">Les Menus</h2> <p align="center">Que diriez-vous d'un menu à emporter ?</p> <p><?php echo "$dm1" ?> : €</p> </body> </html>
Et ça a fonctionné :
<!Doctype> <html> <head> <meta charset="utf-8"> <title>Ton titre</title> </head> <body> <h2 align="center">Les Menus</h2> <p align="center">Que diriez-vous d'un menu à emporter ?</p> <p>Velouté de saison, Poulet à la Bière : €</p> </body> </html>
Je vais essayer de résoudre tous les champs à partir de ce "modèle"...
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
3 févr. 2021 à 13:44
3 févr. 2021 à 13:44
J'ai ajouté et renommé une requête :
et modifié la page html :
et ça donne :
Donc ça marche alors que le code source de la page :
J'essaye d'intégrer toutes les données...
$sql1 = "SELECT descriptif_menu FROM menus WHERE menu = :menu;"; $dm1 = array(':menu'=>1); $dm2 = array(':menu'=>2); try{ $requete1 = $bdd -> prepare($sql1) ; $requete1->execute($dm1) ; $requete2 = $bdd -> prepare($sql1) ; $requete2->execute($dm2) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } //on stocke le résultat de la requête dans un array $row = $requete1->fetch(); $dm1 = !empty($row) ? $row['descriptif_menu'] : ""; $row = $requete2->fetch(); $dm2 = !empty($row) ? $row['descriptif_menu'] : "";
et modifié la page html :
<p><?php echo "$dm1" ?> : €</p> <p><?php echo "$dm2" ?> : €</p>
et ça donne :
Velouté de saison, Poulet à la Bière : €
Velouté au Fromage, Volaille sauce aux Cèpes : €
Donc ça marche alors que le code source de la page :
<!Doctype> <html> <head> <meta charset="utf-8"> <title>Ton titre</title> </head> <body> <h2 align="center">Les Menus</h2> <p align="center">Que diriez-vous d'un menu à emporter ?</p> <p>Velouté de saison, Poulet à la Bière : €</p> <p>Velouté au Fromage, Volaille sauce aux Cèpes : €</p> </body> </html>
J'essaye d'intégrer toutes les données...
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
3 févr. 2021 à 14:12
3 févr. 2021 à 14:12
Je récupère toutes mes données :
et complété le code html dans ma page :
Et ça continue de fonctionner !
Je me demande comment réduire le nombre d'écritures et de requêtes, je suis sûr qu'on peut obtenir au moins les données d'un seul menu en une seule requête mais j'ai pas assez de connaissances pour ce faire...
Je vais me contenter de ça pour l'instant !
$sql1 = "SELECT descriptif_menu FROM menus WHERE menu = :menu;"; $sql2 = "SELECT label_menu FROM menus WHERE menu = :menu;"; $sql3 = "SELECT prix_menu FROM menus WHERE menu = :menu;"; $dm1 = array(':menu'=>1); $dm2 = array(':menu'=>2); $dm3 = array(':menu'=>3); $lm1 = array(':menu'=>1); $lm2 = array(':menu'=>2); $lm3 = array(':menu'=>3); $pm1 = array(':menu'=>1); $pm2 = array(':menu'=>2); $pm3 = array(':menu'=>3); try{ $requete1 = $bdd -> prepare($sql1) ; $requete1->execute($dm1) ; $requete2 = $bdd -> prepare($sql1) ; $requete2->execute($dm2) ; $requete3 = $bdd -> prepare($sql1) ; $requete3->execute($dm3) ; $requete4 = $bdd -> prepare($sql2) ; $requete4->execute($lm1) ; $requete5 = $bdd -> prepare($sql2) ; $requete5->execute($lm2) ; $requete6 = $bdd -> prepare($sql2) ; $requete6->execute($lm3) ; $requete7 = $bdd -> prepare($sql3) ; $requete7->execute($pm1) ; $requete8 = $bdd -> prepare($sql3) ; $requete8->execute($pm2) ; $requete9 = $bdd -> prepare($sql3) ; $requete9->execute($pm3) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } //on stocke le résultat de la requête dans un array $row = $requete1->fetch(); $dm1 = !empty($row) ? $row['descriptif_menu'] : ""; $row = $requete2->fetch(); $dm2 = !empty($row) ? $row['descriptif_menu'] : ""; $row = $requete3->fetch(); $dm3 = !empty($row) ? $row['descriptif_menu'] : ""; $row = $requete4->fetch(); $lm1 = !empty($row) ? $row['label_menu'] : ""; $row = $requete5->fetch(); $lm2 = !empty($row) ? $row['label_menu'] : ""; $row = $requete6->fetch(); $lm3 = !empty($row) ? $row['label_menu'] : ""; $row = $requete7->fetch(); $pm1 = !empty($row) ? $row['prix_menu'] : ""; $row = $requete8->fetch(); $pm2 = !empty($row) ? $row['prix_menu'] : ""; $row = $requete9->fetch(); $pm3 = !empty($row) ? $row['prix_menu'] : "";
et complété le code html dans ma page :
<p><?php echo "$lm1" ?> : <?php echo "$dm1" ?> : <?php echo "$pm1" ?> €</p> <p><?php echo "$lm2" ?> : <?php echo "$dm2" ?> : <?php echo "$pm2" ?> €</p> <p><?php echo "$lm3" ?> : <?php echo "$dm3" ?> : <?php echo "$pm3" ?> €</p>
Et ça continue de fonctionner !
Je me demande comment réduire le nombre d'écritures et de requêtes, je suis sûr qu'on peut obtenir au moins les données d'un seul menu en une seule requête mais j'ai pas assez de connaissances pour ce faire...
Je vais me contenter de ça pour l'instant !