Probleme avec mysql_fetch_array
Astawar
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Astawar Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Astawar Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Voilà maintenant 2 mois que je me suis mis au php en faisant une formation, là je dois faire un système de news, les 3 dernières s'affichent sur la page d'accueil, j'ai fais un bouton "en savoir plus" pour chacune et donc en cliquant là-dessus ça renvoi à la page des news et normalement il n'y a que celle où on a cliquer au préalable qui doit s'afficher, seul problème.. RIEN ne s'affiche.
Voici le code qui se trouve au-dessus du doctype :
<?php
require_once('variables/variables_news.php');
$requete_news = mysql_query('SELECT * FROM news_cliente')or die('Erreur : '.mysql_error());
if(isset($_GET['id_news']) && $_GET['id_news']!=""){
$id_news = $_GET['id_news'];
$requete_id = mysql_query('SELECT * FROM news_cliente
WHERE id_news="$id_news"')or die('Erreur : '. mysql_error());
$tableau_id = mysql_fetch_array($requete_id);
}
?>
et celui qui se trouve dans le body une fois que la variables GET existe :
<?php
if(isset($id_news)){
echo "ok";
echo "<strong>".html_entity_decode($tableau_id['titre'])."</strong>";
echo html_entity_decode($tableau_id['date']);
echo html_entity_decode($tableau_id['message']);
}
?>
L'echo "ok" fonctionne parfaitement et donc s'affiche sur la page , j'ai mis un echo aussi devant le "$requete_id" et il marque bien "1".
Un grand merci à celui ou celle qui pourras me trouver le problème.
Voilà maintenant 2 mois que je me suis mis au php en faisant une formation, là je dois faire un système de news, les 3 dernières s'affichent sur la page d'accueil, j'ai fais un bouton "en savoir plus" pour chacune et donc en cliquant là-dessus ça renvoi à la page des news et normalement il n'y a que celle où on a cliquer au préalable qui doit s'afficher, seul problème.. RIEN ne s'affiche.
Voici le code qui se trouve au-dessus du doctype :
<?php
require_once('variables/variables_news.php');
$requete_news = mysql_query('SELECT * FROM news_cliente')or die('Erreur : '.mysql_error());
if(isset($_GET['id_news']) && $_GET['id_news']!=""){
$id_news = $_GET['id_news'];
$requete_id = mysql_query('SELECT * FROM news_cliente
WHERE id_news="$id_news"')or die('Erreur : '. mysql_error());
$tableau_id = mysql_fetch_array($requete_id);
}
?>
et celui qui se trouve dans le body une fois que la variables GET existe :
<?php
if(isset($id_news)){
echo "ok";
echo "<strong>".html_entity_decode($tableau_id['titre'])."</strong>";
echo html_entity_decode($tableau_id['date']);
echo html_entity_decode($tableau_id['message']);
}
?>
L'echo "ok" fonctionne parfaitement et donc s'affiche sur la page , j'ai mis un echo aussi devant le "$requete_id" et il marque bien "1".
Un grand merci à celui ou celle qui pourras me trouver le problème.
5 réponses
le 1 de requette id ne veut pas dire combien il y en a
essayes comme ça:
essayes comme ça:
<?php
require_once('variables/variables_news.php');
$requete_news = mysql_query('SELECT * FROM news_cliente')or die('Erreur : '.mysql_error());
if(isset($_GET['id_news']) && $_GET['id_news']!=""){
$id_news = $_GET['id_news'];
$requete_id = mysql_query("SELECT * FROM news_cliente
WHERE id_news='$id_news'")or die('Erreur : '. mysql_error());
echo "NBbr enr trouves: ".mysql_num_rows($requete_id);
$tableau_id = mysql_fetch_array($requete_id);
}
?>
et celui qui se trouve dans le body une fois que la variables GET existe :
<?php
if(isset($id_news)){
//pourquoi décoder les carateres codées en html le navigateur fera ça très bien au moment de l'affichage
echo "ok";
echo "<strong>".$tableau_id['titre']."</strong>";
echo $tableau_id['date']);
echo $tableau_id['message'];
}
?>
Si le champ "news_id" est un nombre (INT, TINYINT, SMALLINT, ...), il ne faut pas mettre de guillemets autour de la valeur.
De plus, entre guillemets simples (apostrophes), il faut utiliser la concaténation pour remplacer la variable par sa valeur.
N'oublie pas de protéger tes variables contre les injections SQL.
De plus, entre guillemets simples (apostrophes), il faut utiliser la concaténation pour remplacer la variable par sa valeur.
N'oublie pas de protéger tes variables contre les injections SQL.
$requete_id = mysql_query('SELECT * FROM news_cliente
WHERE id_news='.mysql_real_escape_string($id_news))
Merci ça fonctionne parfaitement, sinon pour le htmlentitty_decode c'est car j'ai inséré les news via une page admin où j'ai ajouté htmlentities.
Merci encore et bonne soirée :)
Merci encore et bonne soirée :)
Perso je préfère enregistrer mes données normalement, et lors de l'affichage, appliquer la fonction htmlentities (j'utilise plutôt htmlspecialchars).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question