Afficher les données de ma base de données
Dodi
-
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai des images, et à chacune est identifiéepar une valeur spécifique comme suit:
Puis j'ai récupéré mes valeurs en post.php comme cela:
et ça marche bien, Maintenant je veux extraire les éléments correspondants à cette valeur de ma base de données mais j'arrive pas :(
EDIT : Ajout des balises de code
J'ai des images, et à chacune est identifiéepar une valeur spécifique comme suit:
<td><a href="post.php?value=123" rel="nofollow" target="_blank"><IMG src="image></a></td>
Puis j'ai récupéré mes valeurs en post.php comme cela:
<?php
if(isset($_GET['value'])){
$valeur_img = $_GET['value'];
}
?>
et ça marche bien, Maintenant je veux extraire les éléments correspondants à cette valeur de ma base de données mais j'arrive pas :(
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("ma_base"); // Sélection de la base
$reponse = mysql_query("SELECT Description,Place,Image FROM table WHERE ID='$valeur_img';")
or die(mysql_error());
mysql_close(); ?>
EDIT : Ajout des balises de code
4 réponses
-
Bonjour.
Quel erreur reçois-tu ?
Si ta table s'appelle réellement "table" c'est surement cela qui génère l'erreur. Il s'agit d'un mot clé donc il faudra renommer ta table. -
Bonjour,
Déjà : Attention ... tu utilises l'ancienne extension Mysql (considérée comme obsolète ! )
Je t'invite fortement à passer à mysqli ou ( perso je préfère...) la PDO.
Je t'invite à lire ceci :
- https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete
- https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
Ensuite, il faut récupérer "proprement" les variables AVANT de les utiliser.
Regardes ici : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
Puis ajoutes au début de ton script PHP la ligne de code suivante :error_reporting(E_ALL);
pour afficher les éventuelles erreurs PHP.
Et enfin... si tu as un doute sur ta requête....
fais en un ECHO puis copie/colle dans PHPMyadmin pour voir si elle fonctionne
-
Sur ce point, @jordane45 a raison. Mysql est obsolète et je te conseille également PDO.
-
Avec PDO sa donnera. N'hésite pas si tu as des questions.
<?php try { $bdd = new PDO('mysql:host=localhost;dbname=ma_base;charset=utf8', 'root', 'root'); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } //Eviter de mettre directement les valeurs dans la requete. Mettre ? à la place $donnees = $bdd->prepare("SELECT Description,Place,Image FROM table WHERE id=?"); //Mettre les valeurs dans le array suivant l'ordre des ? . Ici id = $valeur_img. $donnees->execute(array($valeur_img)); //Récupère les données après éxécution de la requete dans un tableau $reponse = $donnees->fetchAll(); //Récupère les données de la premiere ligne vu que Id unique donc une seule ligne. Numero va de 0 à l-1 $reponse = $reponse[0]; echo 'Description : '.$reponse['Description'].'<br/>'; echo 'Place : '.$reponse['Place'].'<br/>'; echo 'Image : '.$reponse['Image'].'<br/>'; ?>-
Si je peux me permettre....
1 - On place le code de connexion à la BDD dans un fichier à part qu'il suffit d'inclure ensuite dans les pages où on en a besoin. Ca évite de le réécrire sur chaque page du site....
2 - On pense à activer l'affichage des Erreurs PDO (désactivé par défaut)
Fichier CnxBDD.phptry{ $bdd =new PDO('mysql:host=localhost; dbname=mabdd; charset=utf8', 'user', 'password'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }
3 - On place la requête dans une variable (pour pouvoir en faire un Echo si besoin)
4- On utiliser la gestion des erreurs PDO (via des Try/Catch)
Ce qui donnerait donc :<?php //affichage des erreurs php error_reporting(E_ALL); //connexion à la bdd require_once "CnxBDD.php"; //récupération "propre" des variables $valeur_img = !empty($_GET['value']) ? $_GET['value'] : 0; //traitement : $sql = "SELECT Description,Place,Image FROM table WHERE ID= :id" $variables = array(':id'=>$valeur_img); try{ $donnees = $bdd->prepare($sql); $donnees->execute($variables); //Récupère les données après éxécution de la requete dans un tableau $result= $donnees->fetchAll(); //Récupère les données de la premiere ligne vu que Id unique donc une seule ligne. Numero va de 0 à l-1 $reponse = !empty($result) ? $result[0] : NULL; }catch(Exception $e){ echo 'Erreur : ' . $e->getMessage(); echo '<br>Dans la requete :'.$sql; } if($reponse){ echo 'Description : '.$reponse['Description'].'<br/>'; echo 'Place : '.$reponse['Place'].'<br/>'; echo 'Image : '.$reponse['Image'].'<br/>'; }
-