Bonsoir, Je suis depuis peu Grafikart et merci a vous de vos nombreuses réponses. En développant mon système de news, j'ai voulu ajouter un un champ qui permet d'afficher l'auteur de la news. Dans le code que j'ai fait, l'article s'affiche bien mais avec le nom de chanque membre inscrit sur le site. En gros j'ai le titre, l'article, la date, et dans le champ auteur, j'ai tout les membres inscrits dans la base de donnée qui s'affiche alors que je veut uniquement celui qui a créer a a nouvelle. Index.php [code]<?php //Requete SQL
connect();
$sql = "SELECT titre,article,datepub,login FROM news INNER JOIN membre ON(id_membre) WHERE categorie='news' ORDER BY datepub DESC";
$req = mysql_query($sql) or die ('Erreur de sql <br>'.$sql.'
'.mysql_error()); //on affiche les nouvelles dans la boucle while ($data = mysql_fetch_assoc($req)) { echo "<header><h2>{$data["titre"]}</h2></header>"; echo "
{$data["article"]}
"; echo "
{$data["datepub"]}
"; echo "
Publié par : {$data["login"]}
"; } ?>[/code] J'ai ensuite cherché un autre piste, en essayant de récupérer l'id de l'auteur lors de la création de l'article en l'ajoutant dans une colonne dans ma table "news". Lorsque je fait ma requête SQL pour faire correspondre l'id membre avec l'id auteur, je recupere un tableau vide Voici le code. [code]<?php require_once"../controle/class.php";
if(auth::isAdmin()){
extract($_SESSION['tabAuth']);
connect();
$sql = "SELECT id_membre FROM membre WHERE login='$login'";
$req = mysql_query($sql) or die (mysql_error());
$data= mysql_fetch_assoc($req);
echo $data;
}
else
{
header('Location:art_index.php');
}
?>/code] Le traitement d'ajout dans la base de donnée se fait dans une autre page. Merci d'avances
Salut !
Voilà ta requête :
SELECT titre, article, datepub, login
FROM news
INNER JOIN membre ON ( membre.id_membre = news.id_membre )
WHERE categorie = 'news'
ORDER BY datepub DESC
LIMIT 0 , 30
Il te manquait quelque chose dans le ON ^^
Edit : pour ton autre problème de session :
Ajouter une variable de session :
$_SESSION'monNomDeVariable'] = $maVariable;
Obtenir une variable de session :
$maVariable = $_SESSION'monNomDeVariable'];
Bien sur, n'oublie pas de mettre un
session_start()
avant
Bonsoir,
$sql = "SELECT titre,article,datepub,login FROM news INNER JOIN membre ON(id_membre)
Faut lui préciser comment faire la liaison (je suis pas spécialiste des liaisons sql mais je pense que le soucis est là)
Avec
ON(membre.id_membre = news.login)
ça donne quoi ?
Si j'ai bien compris ta structure de base de données...
bien cordialement
Antho
Merci de ta reponse rapide
J'ai eu un message d'erreur il faut que je vérifie ma structure je pense
Erreur de sql
SELECT titre,article,datepub,login FROM news INNER JOIN membre ON(membre.id_membre = news.login) WHERE categorie='news' ORDER BY datepub DESC
Unknown column 'news.login' in 'on clause'
J'ai corrigé la structure mais maintenant j'ai plus aucun article qui s'affiche
Montre nous la structure de tes tables mysql
EDIT: On est en 2013 utilise PDO et pas les fonctions mysql_
Tu pourrais nous donner la structure de tes tables:
le login de news est bien le id_membre de membre??
A mon avis il vaut mieux stocker dans news non pas le login du membre qui a écris mais son id .
donc table news : champ : membre_id
et ON(news.membre_id = membre.id)
Voici la structure de mes tables :
NEWS : id, titre, article, datepub, categorie, id_membre
MEMBRE : id_membre, login, email, password, rang
La nuit portant conseil, j'ai vérifié mes tables. J'ai remarqué que les news ne retournent rien car le champ contenant l'auteur de la nouvelle est vide.
J'ai ajouté dans phpmyadmin manuellement un id d'un membre existant et l'article est apparu. Je pense que maintenant le problème ce joue lors de la creation de l'article, je doit trouver un moyen d'y ajouter l'id du membre qui a créer cette nouvelle.
Maintenant je n'arrive pas a ajouter l'id du membre dans le tableau session. J'ai réussi a l'extraire de la BDD mais je ne sais pas comment je doit faire pour l'ajouter dans $_SESSION
Merci d'avance
Merci a tous pour votre aide, Pewel j'allais utiliser ta solution avec la variable session, j'ai testé j'ai réussi et je viens de voir que tu as publier la solution a laquelle je viens de pense. Ce fut un bon casse tete pour ma part, Voila une bonne chose faite aujourd’hui !