Sebagai pembangun PHP, kami sering menghadapi keperluan untuk menambah fungsi suka pada tapak web atau aplikasi. Artikel ini akan memperkenalkan cara mereka bentuk dan melaksanakan fungsi seperti berbilang artikel melalui pengaturcaraan PHP lanjutan, dan menyediakan contoh kod khusus.
Sebelum mereka bentuk fungsi menyukai berbilang artikel, kami terlebih dahulu perlu menjelaskan keperluan fungsi kami:
Untuk melaksanakan fungsi serupa, kita perlu menyimpan maklumat suka pengguna dalam pangkalan data. Seterusnya, kami mereka bentuk jadual pangkalan data mudah untuk menyimpan maklumat seperti:
CREATE TABLE likes ( id INT AUTO_INCREMENT PRIMARY KEY, article_id INT, user_id INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
Dalam jadual di atas, kami menyimpan id, id artikel, id pengguna dan masa penciptaan rekod serupa.
Kami akan membuat halaman yang mengandungi berbilang artikel dan memaparkan butang suka di bawah setiap artikel. Apabila pengguna mengklik butang suka, kami akan menghantar maklumat suka ke bahagian belakang melalui permintaan AJAX.
Berikut ialah contoh reka bentuk halaman yang mudah:
<!DOCTYPE html> <html> <head> <title>多篇文章点赞功能</title> </head> <body> <div> <h1>文章标题1</h1> <p>文章内容1</p> <button class="like-btn" data-article-id="1">点赞</button> </div> <div> <h1>文章标题2</h1> <p>文章内容2</p> <button class="like-btn" data-article-id="2">点赞</button> </div> </body> </html>
Dalam bahagian belakang PHP, kami akan menulis kod untuk menerima permintaan AJAX dan mengendalikan logik fungsi seperti itu. Berikut ialah contoh kod PHP mudah:
<?php require('db.php'); // 连接数据库 if ($_POST['action'] == 'like') { $article_id = $_POST['article_id']; $user_id = 1; // 假设用户id为1 $sql = "SELECT * FROM likes WHERE article_id = $article_id AND user_id = $user_id"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) == 0) { $sql = "INSERT INTO likes (article_id, user_id) VALUES ($article_id, $user_id)"; mysqli_query($conn, $sql); echo "点赞成功"; } else { echo "您已经点赞过了"; } } ?>
Akhir sekali, kita perlu menulis kod JS bahagian hadapan untuk mengendalikan permintaan AJAX yang dihantar dengan mengklik butang suka. Berikut ialah contoh kod JS yang mudah:
document.querySelectorAll('.like-btn').forEach((btn) => { btn.addEventListener('click', function() { const articleId = this.getAttribute('data-article-id'); fetch('like.php', { method: 'POST', body: JSON.stringify({action: 'like', article_id: articleId}) }) .then(response => response.text()) .then(data => { alert(data); }) .catch(error => console.error('Error:', error)); }); });
Melalui langkah di atas, kami boleh melaksanakan fungsi seperti mudah untuk berbilang artikel. Apabila pengguna mengklik butang suka, bahagian belakang akan menerima permintaan AJAX, semak sama ada pengguna telah menyukainya, dan kemudian mengemas kini rekod pangkalan data.
Saya harap artikel ini akan membantu reka bentuk dan pelaksanaan fungsi serupa dalam pengaturcaraan PHP lanjutan. Ini hanyalah contoh mudah Aplikasi praktikal mungkin memerlukan logik dan pengoptimuman yang lebih kompleks, dan perlu dipertingkatkan dan dikembangkan lagi oleh pembangun.
Atas ialah kandungan terperinci Pengaturcaraan PHP Lanjutan: Reka Bentuk dan Pelaksanaan Fungsi Suka untuk Berbilang Artikel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!