Afficher les données de ma base de données
Dodi
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 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
- Sauvegarde des données - 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..]