Afficher les données de ma base de données
Dodi
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 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
A voir également:
- Afficher les données de ma base de données
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Base de registre - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
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.
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 :
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
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
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.php
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 :
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.php
try{ $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/>'; }
rien ne s'affiche dans l'écran, alors que quand j'écrie un script sql dans ma base de données je reçois l'élément
je pense qu'il y'a une faute dans [ selecr * from..]