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

Résolu
rubikspirit -  
 rubikspirit -
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   Statut Membre Dernière intervention  
 
rajoute: $id = $_GET["id"];
après <?php
1
hani_ Messages postés 333 Date d'inscription   Statut Membre Dernière intervention   20
 
$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   Statut Membre Dernière intervention   89
 
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
 
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