une session auteur personnalisée - PHP - Programmation
Marsh Posté le 30-07-2005 à 14:22:32
facile, tu mets un champ dans la table articles de la bdd pour mémoriser l'auteur. Si c'est le meme que celui qui est connecté, t'affiche. Lorsque de l'effacement, de la modification ou de l'ajout, tu vérifies la meme chose.
Marsh Posté le 30-07-2005 à 14:29:12
J'ai en effet une table auteurs_articles avec et l'id_article et l'id_auteur.
Mais comme je suis asse nul cela donnerait quoi en concret (sans vouloir abuser de ta gentillesse)
Marsh Posté le 30-07-2005 à 14:31:47
tu cherches l'id dans la table auteurs qui correspond à l'id_auteur de l'article, si le nom de cet auteur correspond avec celui en session, tu affiches l'article.
Tout ca, dans une boucle de listage des articles.
Quel est ton problème précisément ?
Marsh Posté le 30-07-2005 à 14:32:54
select ... from articles where id_auteur = $id_auteur
Marsh Posté le 30-07-2005 à 14:38:31
Voilà en deux mots. J'ai un site d'écriture en ligne plus de 800 textes et 90 auteurs.
Ceux ci aimeraient retrouver dans une page bien a eux les articles auquels il n'ont pas répondu à leurs commentaires
Je dois donc taper sur deux tables (j'ai déjà beaucoup de mal à ce niveau. La premiere table_forum possede id_parent et l'id_article id_parent est à zéro lorsque le message forum est vide. Pour compliqué j'ai aussi un id_auteur mais c'est celui du créatuer du thread et non de l'article.
Pour retrouver l'auteur de l'article je dois aller sur une autre table auteurs_articles ou je retrouve et l'id_articles mais aussi l'id_auteur de l'article.
Comme je suis vraiment novice en php je bloque et sur mes requêtes sur deux tables et sur la reconnaissance du membre connecté...Pfuuuu! c'est dur le php et SQL !!!
Marsh Posté le 30-07-2005 à 16:32:00
Voilà ce que j'ai fait avec mes petites connaissances php:
$requete = "select * from spip_forum";
$envoi = mysql_query($requete);
while($tableau = mysql_fetch_array($envoi))
{
$nom = $tableau['id_auteur'];
$titre = $tableau['titre'];
$etat = $tableau['id_parent'];
$origine = $tableau['statut'];
$idmembre = $tableau['id_session'];
if ($etat==0 && $origine=="publie" && $auteur_session['id_session']==$id)
{
echo "$nom $titre $etat $origine $idmembre <br>";
}
}
?>
Bon , j'affiche donc bien tous les textes dont l'etat est à zéro. Mais je n'arrive pas à faire une nouvelle requete pour comparer le texte en fonction de l'id_auteur du texte qui se trouve sur une autre table et je n'arrive pas à personnaliser l'affichage en fonction de l'auteur en ligne
PLEASE AIDEZ MOI, JE SUIS PERDU
Marsh Posté le 30-07-2005 à 17:52:34
C'est pas clair tout ça, balance le schéma de tes tables, explique un peu comment tout ça doit fonctionner, et surtout ce que tu veux obtenir, clairement.
Paskeu là entre les "auteurs", "forums", "messages forum", "articles", "threads", "textes" et les phrases qui veulent rien dire ("Ceux ci aimeraient retrouver dans une page bien a eux les articles auquels il n'ont pas répondu à leurs commentaires" ), y'a de quoi s'embrouiller un chouilla en te lisant...
Marsh Posté le 30-07-2005 à 18:10:43
LOL! oui tu as raison!
Voilà en deux mots la structure de la table spip_forum:
# Structure de la table `spip_forum`
#
CREATE TABLE spip_forum (
id_forum bigint(21) NOT NULL auto_increment,
id_parent bigint(21) NOT NULL default '0',
id_rubrique bigint(21) NOT NULL default '0',
id_article bigint(21) NOT NULL default '0',
id_breve bigint(21) NOT NULL default '0',
date_heure datetime NOT NULL default '0000-00-00 00:00:00',
titre text NOT NULL,
texte mediumtext NOT NULL,
auteur text NOT NULL,
email_auteur text NOT NULL,
nom_site text NOT NULL,
url_site text NOT NULL,
statut varchar(8) NOT NULL default '',
idx enum('','1','non','oui','idx') NOT NULL default '',
ip varchar(16) default NULL,
maj timestamp(14) NOT NULL,
id_auteur bigint(20) NOT NULL default '0',
id_message bigint(21) NOT NULL default '0',
id_syndic bigint(21) NOT NULL default '0',
id_session bigint(21) NOT NULL default '0',
PRIMARY KEY (id_forum),
KEY id_parent (id_parent),
KEY id_rubrique (id_rubrique),
KEY id_article (id_article),
KEY id_breve (id_breve),
KEY id_message (id_message),
KEY id_syndic (id_syndic),
KEY statut (statut,date_heure),
KEY idx (idx)
) TYPE=MyISAM;
# --------------------------------------------------------
#
Maintenant la structure de la table spip_auteurs_articles:
#
# Structure de la table `spip_auteurs_articles`
#
CREATE TABLE spip_auteurs_articles (
id_auteur bigint(21) NOT NULL default '0',
id_article bigint(21) NOT NULL default '0',
KEY id_auteur (id_auteur),
KEY id_article (id_article)
) TYPE=MyISAM;
# --------------------------------------------------------
Et voilà ce que je veux faire:
La page perso:
Bonjour Byld vous avez n messages en attente de réponse sur les textes suivants.
Le site est construit ainsi: Un texte -> commentaire-> reponse au commentaire.
Si le texte à un commentaire mais pas de réponse je récupère la variable id_parent dans spip_forum qui doit être à zéro.
Bon jusque là j'espère être clair, c'est pas toujours evident
Maintenant dans cette même table il y a l'id_article qui corespond au texte et l'id_auteur qui est celui qui a fait le commentaire et non l'article.
Donc si je veux personnaliser ma page il me faut bien un $auteursession[id_auteur]== id_auteur de l'article, hors cette valeur là est dans la table spip_auteurs_articles.
Du coup je suis paumé, je ne sais pas comment appelé ce champ là.
Pour finir (suis désolé)j'ai créé dans la table spip_forum une colonne id_session, mais là encore je ne sais pas comment la remplir en fonction des textes pour que cela soit cohérant..
Pfuuu, j'espere être plus clair sinon pour l'exemple vas voir mon site tu capteras mieux ce que je tente difficilement d'expliquer http://www.la-plume-et-lencrier.com
et ma page de test http://www.la-plume-et-lencrier.com/php/essai.php3 (correction effectuée)
Merci d'avance si tu as reussi à me comprendre
Marsh Posté le 30-07-2005 à 14:20:10
Bonjour,
Comment puis je faire en php pour qu'un auteur qui se connecte et passe par une zône membre et donc c'est logué puisse retrouver les textes qu'il a mis en ligne et uniquement les siens.
En fait comment personnaliser une page en fonction de la session de l'internaute.
Je voudaris cela :
Bonjour Byld:
Voici tous vos articles:
Art1
art2
art3...etc..et comment rendre une variable en URL
J'ai par exemple sur ma table id_article=25 comment en faire une url valide di style: http://www.monsite.com/article php3?id_25
Merci d'avance