Je réalise qu'il s'agit en quelque sorte d'une question abstraite qui a plusieurs réponses, mais je ne sais pas par où commencer. Je souhaite avoir une zone de commentaires distincte pour chacun des articles de mon blog. Devrais-je simplement mettre en place une table différente pour les commentaires pour chaque entrée manuellement chaque fois que je mets à jour le code pour inclure la dernière entrée?Qu'est-ce qu'un moyen efficace de coder des zones de commentaire séparées?
Répondre
Créer une nouvelle table pour les commentaires avec une structure similaire à (bien sûr vous pouvez le personnaliser à vos besoins):
Comments
id INT NOT NULL auto_increment,
blog_id INT NOT NULL,
author_id INT NOT NULL DEFAULT 0,
comment text NOT NULL,
added_date DATETIME NOT NULL
Le author_id est lié à la table des utilisateurs pour les utilisateurs connectés, 0 pour un utilisateur anonyme. Tout le reste devrait être explicite, j'espère.
Je ne suis pas sûr de ce que vous voulez dire ... mais il semble que vous vouliez avoir des commentaires spécifiques à chaque article. Si c'est le cas, créez simplement un champ dans la table des commentaires pour "post_id" ou quelque chose de similaire. Ensuite, sur chaque page de publication, utilisez simplement une instruction SELECT pour récupérer des commentaires pour ce post_id particulier.
Il suffit d'avoir une table de base de données stockant l'ID poste dans l'un des champs. Quelque chose de semblable à ce qui suit:
CREATE TABLE blog_comments (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
author_id INT(10) UNSIGNED NOT NULL DEFAULT '0',
post_id INT(10) UNSIGNED NOT NULL,
comment TEXT NOT NULL,
added_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
Ensuite, vous pouvez simplement interroger pour poster des commentaires comme ainsi:
$pid = 13; // or whatever your post ID is; could be a $_GET value
$sql = "SELECT * FROM comments WHERE post_id = '$pid' ORDER BY added_on DESC";
Bien sûr, assurez-vous de désinfecter la requête ci-dessus, que vous ne voulez pas un passant ce qu'ils se sentent pour la valeur de $pid
. Vous devez vous assurer que c'est un nombre, et un nombre seulement.
Par exemple '$ pid = (int) $ _GET ['pid'];' – Svish
Comment puis-je concevoir mon formulaire html pour envoyer une valeur pour ma variable d'identifiant de publication que je choisis? Je sais que je dois faire la méthode = "get" mais je ne veux pas qu'une zone de texte soit créée, je veux passer un nombre ou une variable qui contient un nombre. – Jimmy
Avec un champ caché. '' où '$ post-> id' est l'endroit où vous souhaitez répercuter l'ID de poste réel en utilisant la méthode que vous utilisez déjà pour extraire les données de la base de données. –
Est-ce que 'blog_id' ne devrait pas être' post_id' ou quelque chose? > Je veux avoir une zone de commentaires séparée pour chacun de mes ** billets de blog ** – Svish
Ma réponse était juste une configuration lâche. Comme je l'ai dit, cela devrait être explicite. Si vous avez configuré vos blogs en tant que "posts", alors oui, ce serait post_id. –