Problème d'affichage d'infos avec du PHP

Résolu/Fermé
rubikspirit - 21 oct. 2008 à 13:19
 rubikspirit - 21 oct. 2008 à 13:29
Bonjour à tous,

Voila, je voudrais faire un site en PHP où j'ai des "news" dans une base de données. Le soucis c'est que je voudrais faire une page qui appelle les différents éléments concernant une news et les affiche sur la page suivant l'ID qu'il y a dans l'adresse de la page.

Par exemple :
http://localhost/site/news.php?id=1 permettra d'afficher sur ma page les infos de la News 1 (chose donc trouve fréquemment sur le net, je sais...)

J'ai donc mon script mais je bloque face à ceci :

<?php	
  		
$db = mysql_connect('localhost', 'root', ''); 

// on sélectionne la base 
mysql_select_db('phonerom_site',$db); 

// on crée la requête SQL 
$sql = 'SELECT * FROM news where ID_news="$id"'; 

// on envoie la requ&ecirc;te 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    echo '<div class="date">'.$data['date'].'</div>'; 
    echo '<div class="subject">'.$data['titre'].'</div>';
	echo '<div class="text">'.$data['resume'].'</div>';
	echo '<a href="news.php?id='.$data['ID_news'].'"><div class="next">Lire la suite...</div></a>'; 
    } 

// on ferme la connexion à mysql 
mysql_close();
?>


En effet, si j'écris dans mon code 1 à la place de $id, tout fonctionne bien, mais en laissant $id, rien ne s'affiche.
Je ne comprends pas d'où ca vient car j'ai déja un script de ce genre qui fonctionne très bien mais là, ca coince et je vois pas pourquoi...

Merci de m'aider...
A voir également:

4 réponses

tagman99 Messages postés 29 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 28 octobre 2008
21 oct. 2008 à 13:24
rajoute: $id = $_GET["id"];
après <?php
1
hani_ Messages postés 333 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 18 novembre 2009 20
21 oct. 2008 à 13:24
$sql = 'SELECT * FROM news where ID_news=".$id."';

avec les points autour de ta variable id
1
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
21 oct. 2008 à 13:27
Bonjour.
// on crée la requête SQL 
$sql = 'SELECT * FROM news where ID_news="$id"'; 

Voir dans la doc PHP (ICI, par exemple)

Il y a un problème avec les quotes.
Quand tu mets une chaîne entre quotes simples, ce qui est dedans n'est pas interprété.
Tu peux vérifier en faiant un echo $sql qui devrait t'afficher :
SELECT * FROM news where ID_news="$id"


Solutions :
- Concaténer les chaînes :
$sql = 'SELECT * FROM news where ID_news="'.$id.'"';

- Utiliser des quotes doubles :
$sql = "SELECT * FROM news where ID_news=$id";
(je suppose que dans ta base, ID_news est un nombre ?)
1
rubikspirit
21 oct. 2008 à 13:29
Merci beaucoup pour la dernière réponse, c'est celle qui fonctionne :D

Merci aussi à tous les autres de m'avoir aidé aussi rapidement.

Je pense que je reviendrais pour d'autres questions héhé !
0