Table des matières
回复讨论(解决方案)

PHP评论回复

Jun 23, 2016 pm 02:39 PM

本帖最后由 haoren026 于 2013-12-15 21:12:03 编辑

我知道这个问题非常非常初级。。我也搜索了很多帖子,但是都相当麻烦,或者我能力不够无法实现。

问题是这样的:
我在练习写博客系统,要实现评论回复功能,要求不高,访客评论,博主回复评论,不能对回复再回复,只有一层关系:评论-回复。就这么简单。

网上的方法的数据表结构大多如下:
id:评论id
pid:回复的评论id
content:评论内容

我想知道,当评论的记录与回复的记录之间隔了若干行,要怎样找到回复的记录,比如:

id pid
1  0
2  0
3  1  //回复与评论隔了若干行
4  0

这个问题在SQL排序重组里好难解决啊。。求助大神,万分感谢


回复讨论(解决方案)

pid=1 不就是id=1的评论的回复么?没有必要关心是不是挨着的吧

没太明白隔了若干行是干什么的...

pid=1 不就是id=1的评论的回复么?没有必要关心是不是挨着的吧
我想从数据库取出评论的时候是如下的:
id pid
1  0
3  1
2  0
4  0
这样我用php输出的时候就非常简单,按照id顺序输出,遇到pid不为0,视为博主回复,显示在被回复的评论下面。

没太明白隔了若干行是干什么的...
比如访客发了2条评论,博主回复了第1条评论,那此时数据库里的存储顺序为:
id pid
1  0
2  0
3  1  //回复与评论隔了1行

参看我3楼回复2楼的帖子

pid=1 不就是id=1的评论的回复么?没有必要关心是不是挨着的吧
我想知道有没有SQL语句能实现相关的评论和回复“上下挨着”,这样就不用php去重排了


没太明白隔了若干行是干什么的...
比如访客发了2条评论,博主回复了第1条评论,那此时数据库里的存储顺序为:
id pid
1  0
2  0
3  1  //回复与评论隔了1行

参看我3楼回复2楼的帖子

这个跟上下挨着没有关系 ,重要的还是把你的sql与逻辑处理好,不要依赖这种顺序来确保你的程序不出错,它不可能按你的想象的顺序来insert的



没太明白隔了若干行是干什么的...
比如访客发了2条评论,博主回复了第1条评论,那此时数据库里的存储顺序为:
id pid
1  0
2  0
3  1  //回复与评论隔了1行

参看我3楼回复2楼的帖子

这个跟上下挨着没有关系 ,重要的还是把你的sql与逻辑处理好,不要依赖这种顺序来确保你的程序不出错,它不可能按你的想象的顺序来insert的

我知道,用户发评论和博主回复的顺序是不规则的,所以数据库存储是无序的,我是想在从数据库取数据时,在SQL查询语句里添加排序功能等等,使之实现我想要的顺序,方便输出到网页上,而不是把无序的数据丢给PHP去解决。所以需要一定的数据库设计和SQL查询技巧




没太明白隔了若干行是干什么的...
比如访客发了2条评论,博主回复了第1条评论,那此时数据库里的存储顺序为:
id pid
1  0
2  0
3  1  //回复与评论隔了1行

参看我3楼回复2楼的帖子

这个跟上下挨着没有关系 ,重要的还是把你的sql与逻辑处理好,不要依赖这种顺序来确保你的程序不出错,它不可能按你的想象的顺序来insert的

我知道,用户发评论和博主回复的顺序是不规则的,所以数据库存储是无序的,我是想在从数据库取数据时,在SQL查询语句里添加排序功能等等,使之实现我想要的顺序,方便输出到网页上,而不是把无序的数据丢给PHP去解决。所以需要一定的数据库设计和SQL查询技巧
用order by不可以吗?找他们的共同处,先pid,再其他,一个一个排序

用order by不可以吗?找他们的共同处,先pid,再其他,一个一个排序
没有共同处,我想过了的

 不知道我正确理解了问题和要求没有。

我觉得对这个问题,有几种解决方法:

1. 一个是,既然最复杂的情况只能是“帖子-评论-评论的评论”,那么我就干脆设立一个新的表格,专门存放评论的评论。我觉得这么做比讨论什么order by要靠谱的多。

2. 一个是,帖子显示(应该没有问题),然后是评论显示(也没有问题),只是在foreach显示每条评论的时候,再调用一些query来显示评论的评论。

个人建议用第二种方式。

BTW,这个问题其实不初级。

固定层级为两层好说
http://sqlfiddle.com/#!2/e433e/1
这语句是跟mysql版主学的

select * from `comment` order by if(pid=0,id,pid) asc
Copier après la connexion
 

这个语句要好好学习。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Expliquez le concept de liaison statique tardive en PHP. Expliquez le concept de liaison statique tardive en PHP. Mar 21, 2025 pm 01:33 PM

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Mar 28, 2025 pm 05:11 PM

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

Comment déboguer le mode CLI dans phpstorm? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

See all articles