Page 1 sur 1

Problème de gestionnaire d'articles (récupération d'id)

Posté : 03 juin 2005, 13:34
par wizardman
Bonjour tout le monde,

je code en ce moment un petit gestionnaire d'articles.

Voici le script qui est censé lister puis afficher les articles :
<?php
require("config.php");

$db = mysql_connect($host,$user,$pass) or die ("Erreur SQL !<br>".mysql_error());
mysql_select_db('site',$db) or die ("Erreur SQL !<br>".mysql_error());

$action = $_GET['action'];


$sql = "SELECT titre,auteur,date,article FROM articles";
$req = mysql_query($sql);

while($data = mysql_fetch_array($req)) 
{
  echo "<a href=\"articles.php?action=view&id=$data[id]\"><font face=arial><b>$data[titre]</b> , posté par <b>$data[auteur]</b> le <b>$data[date]</b><br><br></a>";
}

if($action=="view")
{
$id = $_GET[id];

$sql = "SELECT titre,auteur,date,article from articles WHERE id='$id'";
$req = mysql_query($sql);

while($data = mysql_fetch_array($req)) 
{
  echo '<font face=arial><b>'.$data['titre'].'</b> , écrit par <b>'.$data['auteur'].'</b> le <b>'.$data['date'].'</b><br><br></a>';
  echo $data['article'];
  echo '<hr noshade color="#000080">';
}

}
?>
Seulement, lorsque je veut lire un article, je remarque que le lien est "articles.php?action=view&id=", c'est à dire sans n° d'ID.

Pouvez-vous m'aider ?

Merci d'avance.

Posté : 03 juin 2005, 13:37
par zeus
Essaye de remplacer ta ligne par ça :
echo "<a href=\"articles.php?action=view&id=".$data['id']."\"><font face=arial><b>$data[titre]</b> , posté par <b>$data[auteur]</b> le <b>$data[date]</b><br><br></a>"; 
-- EDIT --

explication : il faut éviter d'interpreter les variables dans les chaines (ergonomie du développement)

ensuite, tu n'avais pas mis les ' autours de l'index de ton tableau

Posté : 03 juin 2005, 13:42
par wizardman
Merci d'avoir répondu si rapidement.

Même en remplacant par ta ligne, ca ne marche toujours pas. Je ne voit pas ce qui va pas d'ailleur.

Posté : 03 juin 2005, 13:44
par zeus
J'ai trouvé !!!

Tu cherche ($data["id"]) a récuperer le contenu du champ id de ta table article !

Or, dans ta requete, tu ne sélectionne pas le champ ID !!!!!!

si ce champs existe dans ta base, il faut que ta requete ressmeble à ça :

Code : Tout sélectionner

$sql = "SELECT id,titre,auteur,date,article FROM articles";
-- EDIT --

Ce qui n'allait pas, c'est que si tu cherche à placer une case d'un tableau dans une chaine, il faut placer des " autour de l'index de ton tableau et que si celui ci est DANS la chaine, ca ne fonctionnera pas !!!! il fallait donc le sortir de la chaine !!!

En plus, c'est plus facile à lire pour un développeur ::

Posté : 03 juin 2005, 13:47
par Cyrano
Vous y êtes presques les gars ;)
echo "<a href=\"articles.php?action=view&id=".$data['id']."\"><font face=arial><b>". $data['titre'] ."</b> , posté par <b>". $data['auteur'] ."</b> le <b>". $data['date'] ."</b><br><br></a>";
D'une part il faut séparer les variables PHP des chaines de caractères, mais il faut également séparer les index de type chaine de caractère en les encadrant par des apostraphones dans les crochets des variables de type tableau, donc $data['id'] et non $data[id]

Posté : 03 juin 2005, 13:49
par zeus
Depuis que tu es Ganesha Cyrano, tu as des problèmes de visions :langue:

Sérieusement, j'ai déjà soulevé ce problème dans un précédent post :lol:

Posté : 03 juin 2005, 13:51
par Cyrano
Depuis que tu es Ganesha Cyrano, tu as des problèmes de visions :langue:

Sérieusement, j'ai déjà soulevé ce problème dans un précédent post :lol:
ben on poste en même temps aussi, enfin bon, je vais aller faire la sieste, c'est vrai que ces derniers jours, c'est pas terrible coté vision :langue:

Posté : 03 juin 2005, 13:53
par wizardman
Merci beaucoup tout le monde !

Ca marche !

Encore merci et longue vie au forum :wink:

Posté : 03 juin 2005, 13:54
par zeus
Ne le prend pas mal, je te taquinais !!!! :?

Mais il y 10mn entre nos 2 posts :lol:

Allez j'arrête, je taquine tout le monde depuis ce matin, je vais pas tarder à m'en prendre une !!!!

PS : au fait, je monte sur Paris ce we !!! c'est pas toi qui est de la-haut ???

Posté : 03 juin 2005, 15:01
par Cyrano
Ben non, je suis dans l'Aveyron ;) (si tu avais regardé mon profil, tu saurais même dans quelle ville :langue: )