Cet article analyse la méthode d'implémentation de l'article précédent et de l'article suivant en PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
php implémente l'article précédent et l'article suivant. Cela utilise principalement SQL pour juger en fonction de l'ID actuel, puis filtrer les données avant l'actuel. ID ou les données après l'ID C'est aussi simple que cela, 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.
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 :
SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id;
Après avoir exécuté ceci sql, vous obtenez $max_id , puis
SELECT article_id, title FROM article WHERE article_id = $max_id;
simplifiez-le et convertissez-le en une sous-requête :
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 suivant :
SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id;
Exécutez ce sql Obtenez $min_id après l'instruction, puis :
SELECT article_id, title FROM article WHERE article_id = $min_id;
Simplifiez-le et convertissez-le en sous-requête :
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, beaucoup d'amis aiment pour utiliser la déclaration suivante
Article précédent, le code est le suivant :
select id from table where id10 limit 0,1;
Il n'y a définitivement aucun problème avec ceci, 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 du trois requêtes doivent être identiques. La première ligne du 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 :
(select id from table where id < 10 order by id asc limit 1) union all (select id from table where id = 10) union all (select id from table where id > 10 order by id desc limit 1);
Regardons maintenant quelques exemples dans cms phpcms implémente l'article précédent et l'article suivant.
Obtenez l'identifiant de l'article actuellement consulté :
$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);
J'espère que cet article sera utile à tous ceux qui sont aidés par la programmation PHP.
Pour plus de méthodes d'implémentation PHP et des exemples des articles précédents et suivants, veuillez faire attention au site Web PHP chinois pour les articles connexes !