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   -
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.

5 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
le 1 de requette id ne veut pas dire combien il y en 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'];

}
?> 
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
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.
$requete_id = mysql_query('SELECT * FROM news_cliente 
WHERE id_news='.mysql_real_escape_string($id_news))
0
Astawar Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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 :)
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 510
 
Perso je préfère enregistrer mes données normalement, et lors de l'affichage, appliquer la fonction htmlentities (j'utilise plutôt htmlspecialchars).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Astawar Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Cest vrais que là étant donné que seul l'admin pourra insérer quelque chose dans la base de donnée l'htmlentities ne sert à rien.. Mais sinon c'était bien les double guillemet à "$id_news" qui faisait que ça ne fonctionnais pas.. :s
0