Page 1 sur 1

Impossible de récupérer des données pour les afficher.

Posté : 05 mai 2016, 13:36
par Legrandfifou
Bonjour , j'ai créer un système de post sur mon site web et j'aimerais qu'il s'affiche une fois dans la base de donnée , cependant j'ai essayé avec ce code
<?php
session_start();

$bdd = new PDO ('Ma connexion cachée volontairement ^^');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

						$sql_print_post = 'SELECT * FROM post';
						try 
							{

						    $req_post_affichage = $bdd->prepare($sql_print_post);
						    $donnees_post_affichage = $req_post_affichage->fetch();

							} 

						catch(Exception $e) 
							{
							
							   echo "<br>ERREUR ! ".$e->getMessage()."<br>";
							   echo "<br>params : <br>";
							}
							
							echo "<div class='post_affichage'>
									".$donnees_post_affichage."
								  </div>
								  ";

							print_r($donnees_post_affichage);

							$title = $donnees_post_affichage['title'];

							echo $title;

							



						

							
?>
Mais rien ne s'affiche et aucune erreur :/ Pourtant il y a bien quelque chose dans ma base de donnée ...

Voilà , si quelqu'un a une idée merci à vous :)

Re: Impossible de récupérer des données pour les afficher.

Posté : 05 mai 2016, 23:20
par Ryle
Bonsoir,

Entre prepare() et fetch(), il faut également penser à exécuter la requête ;)

Re: Impossible de récupérer des données pour les afficher.

Posté : 05 mai 2016, 23:26
par Legrandfifou
Bonsoir,

Merci de ta réponse , j'ai rajouter ce que je pense être juste c'est à dire comme ceci.
$sql_print_post = 'SELECT * FROM post';
						try 
							{

						    $req_post_affichage = $bdd->prepare($sql_print_post);
						    $req_post_affichage->execute($sql_print_post);
						    $donnees_post_affichage = $req_post_affichage->fetch();

							} 

						catch(Exception $e) 
							{
							
							   echo "<br>ERREUR ! ".$e->getMessage()."<br>";
							   echo "<br>params : <br>";
							}
							
							echo "<div class='post_affichage'>
									".$donnees_post_affichage."
								  </div>
								  ";

							print_r($donnees_post_affichage);

							$title = $donnees_post_affichage['title'];

							echo $title;
Est-ce comme cela ? Si oui j'ai ce message d'erreur :

Code : Tout sélectionner

Warning: PDOStatement::execute() expects parameter 1 to be array, string given in /home/u588207568/public_html/post.php on line 14
Merci de ton aide :)

EDIT : Ou est-ce plutôt comme cela
$req_post_affichage = $bdd->prepare($sql_print_post);
						    $req_post_affichage_test->execute($req_post_affichage);
						    $donnees_post_affichage = $req_post_affichage_test->fetch();

Re: Impossible de récupérer des données pour les afficher.

Posté : 06 mai 2016, 11:11
par Spols
Je pense que c'est plutot comme ceci :
$req_post_affichage = $bdd->prepare($sql_print_post);
                $req_post_affichage->execute(array());
                $donnees_post_affichage = $req_post_affichage->fetch();

Re: Impossible de récupérer des données pour les afficher.

Posté : 06 mai 2016, 13:01
par Ryle
Ca a effectivement peu d'intérêt dans ton cas, mais pour exécuter une requête préparée, il faut lui passer un tableau de valeur à utiliser dans la requête. En l'occurrence tu n'utilises aucune variable dans ta requête et il n'est pas forcément très cohérent d'utiliser une requête préparée pour cela (ni d'ailleurs pour exécuter des requêtes qu'une seule fois :))

La méthode query() de PDO semble mieux adaptée à ton cas, bien que prepare() + execute() fonctionneront quand même avec les compléments de Spols :)

A savoir : la requête préparée a pour objectif d'optimiser l'exécution d'un nombre important de requêtes identiques avec des valeurs différentes. Si la requête ne contient pas de valeurs ou n'est exécutée qu'une seule fois, les requêtes préparées ne devraient pas être utilisées. Cet usage a cependant été détourné, car les valeurs transmises dans les requêtes préparées sont automatiquement délimitées si nécessaire (chaines passées entre apostrophes) et protégées (ajout d'un antislash devant les apostrophes pour les chaines...)

Re: Impossible de récupérer des données pour les afficher.

Posté : 06 mai 2016, 13:50
par Legrandfifou
Merci à vous j'ai réussi à faire ce que je voulais grâce à vous ! :)

Et un grand merci pour les explications ^^