Cet article présente principalement la méthode de réalisation de l'article précédent et suivant en PHP. Il résume et analyse les compétences de requête liées aux opérations SQL de PHP pour obtenir l'article précédent et suivant sous forme d'exemples. à cela
L'implémentation de l'article précédent et de l'article suivant en PHP utilise principalement SQL pour juger en fonction de l'ID actuel, puis filtrer les données avant l'ID actuel ou les données après l'ID. simple. Jetons un coup d'œil aux détails.
Implémenter la méthode d'écriture des instructions SQL pour les articles précédents et suivants dans les articles du site Web.
L'identifiant de l'article actuel est $article_id, et l'identifiant de la catégorie correspondante de l'article actuel est $cat_id, alors l'article précédent devrait être :
Copier le code Code comme suit :
SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id;
Après avoir exécuté cette instruction SQL, nous obtenons $max_id , puis
Copier le code Le code est le suivant :
SELECT article_id, title FROM article WHERE article_id = $max_id;
Simplifiez-le et convertissez-le en sous-requête :
Copier le code Le code est le suivant :
SELECT article_id, title FROM article WHERE article_id = (SELECT max (article_id) FROM article WHERE article_id < $article_id AND cat_id=$ cat_id);
L'article suivant est, le code est le suivant :
Copier le codeLe code est le suivant :
SELECT min(article_id ) FROM article WHERE article_id > $article_id AND cat_id=$cat_id;
Après avoir exécuté cette instruction SQL , on obtient $min_id, puis :
Copier le code Le code est le suivant :
SELECT article_id, title FROM article WHERE article_id = $min_id;
Simplifiez-le et convertissez-le en sous-requête :
Copier le code Le code est le suivant :
SELECT article_id, title FROM article WHERE article_id = (SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id);
Enfin, de nombreux amis aiment utiliser la déclaration suivante
Article précédent , le code est le suivant :
select id from table where id10 limit 0,1;
C'est sûr Il n'y a pas de problème, mais les performances ne sont pas très bonnes
. Optimisation des instructions SQL :
Vous pouvez utiliser union all pour récupérer 3 lignes de données dans une seule instruction, mais le principe est que les champs des trois requêtes doivent être les mêmes. le résultat de cette requête est l'article précédent, la deuxième ligne est l'article actuel et la troisième ligne est l'article suivant. Le code est le suivant :
Copier le code. Le code est le suivant :
(sélectionnez l'identifiant dans la table où l'identifiant < 10, commandez par identifiant asc limit 1) union all (sélectionnez l'identifiant dans la table où id = 10) union all (sélectionnez l'identifiant dans la table où id > 10 order by id desc limit 1);
Regardez maintenant quelques exemples dans cms phpcms qui implémente l'article précédent et l'article suivant.
Obtenez l'identifiant actuel de l'article Parcourir :
$id = isset($_GET['id']) > 0 ? intval($_GET['id']) : "";
Article suivant :
$query = mysql_query("SELECT id,title FROM article WHERE id>'$id' ORDER BY id ASC LIMIT 1"); $next = mysql_fetch_array($query);
Article précédent :
$query = mysql_query("SELECT id,title FROM article WHERE id <'$id' ORDER BY id DESC LIMIT 1"); $prev = mysql_fetch_array($query);
Résumé : ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il pourra aider tout le monde à apprendre les aides.
Recommandations associées :
Un exemple d'utilisation de PHP pour implémenter la fonction de détection IP anormale de connexion
Un exemple d'utilisation de PHP pour mettre en œuvre un programme de voleur
phpExporter un fichier csv, les 0 premières instances peuvent être exportées
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!