Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyelesaian kepada masalah bahawa hobi tidak dapat dipaparkan dalam pangkalan data PHP

Penyelesaian kepada masalah bahawa hobi tidak dapat dipaparkan dalam pangkalan data PHP

WBOY
WBOYasal
2024-02-29 16:03:03524semak imbas

Penyelesaian kepada masalah bahawa hobi tidak dapat dipaparkan dalam pangkalan data PHP

Penyelesaian kepada masalah hobi tidak boleh dipaparkan dalam pangkalan data PHP

Apabila membangunkan laman web atau aplikasi, ia selalunya melibatkan operasi yang berinteraksi dengan pangkalan data. Kadangkala kita perlu memaparkan maklumat hobi pengguna pada halaman, tetapi menyimpan hobi pengguna dalam pangkalan data bukanlah perkara yang mudah. Artikel ini akan memperkenalkan cara menyelesaikan masalah bahawa pangkalan data tidak dapat memaparkan hobi dalam PHP, dan menyediakan contoh kod khusus untuk rujukan.

Penerangan Masalah

Andaikan kita mempunyai jadual pengguna (pengguna) dan jadual hobi (hobi) Meja pengguna menyimpan maklumat asas pengguna, dan jadual hobi menyimpan pelbagai maklumat hobi pengguna ID. Sekarang kita perlu memaparkan maklumat hobi pengguna pada halaman berdasarkan ID pengguna, tetapi hobi pengguna tidak boleh dipaparkan secara langsung dalam pangkalan data.

Idea penyelesaian

Untuk menyelesaikan masalah ini, kami boleh melaksanakannya melalui langkah-langkah berikut:

  1. Tubuhkan jadual perkaitan antara pengguna dan hobi (pengguna_hobi) dalam pangkalan data, dan rekod ID pengguna dan ID hobi yang sepadan dalam meja.
  2. Soal maklumat pengguna dalam PHP dan tanya ID hobi yang sepadan melalui ID pengguna.
  3. Soal maklumat hobi khusus berdasarkan ID hobi.
  4. Paparkan maklumat hobi pengguna pada halaman.

Pelaksanaan khusus

1. Buat jadual persatuan

Pertama, buat jadual persatuan bernama pengguna_hobi dalam pangkalan data untuk menyimpan maklumat persatuan pengguna dan hobi. Struktur jadual adalah seperti berikut:

CREATE TABLE user_hobbies (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    user_id INT(11),
    hobby_id INT(11)
);

2. Tanya maklumat pengguna

Dalam kod PHP, kami mula-mula menanyakan maklumat asas pengguna dan mendapatkan ID pengguna. Andaikan bahawa kami telah memperoleh ID pengguna 1.

<?php
$userId = 1;
// 查询用户信息的SQL语句
$query = "SELECT * FROM users WHERE id = $userId";
// 执行查询操作
// 这里假设使用PDO进行数据库操作
$stmt = $pdo->query($query);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
?>

3. Tanya maklumat hobi pengguna

Seterusnya, kami bertanya maklumat hobi pengguna berdasarkan ID pengguna.

<?php
// 查询用户的爱好ID的SQL语句
$query = "SELECT hobby_id FROM user_hobbies WHERE user_id = $userId";
$stmt = $pdo->query($query);
$hobbyIds = $stmt->fetchAll(PDO::FETCH_COLUMN);
?>

4. Tanya maklumat hobi dan paparkannya

Akhir sekali, tanya maklumat hobi tertentu berdasarkan ID hobi yang diperoleh dan paparkan di halaman.

<?php
// 根据爱好ID查询爱好信息的SQL语句
$query = "SELECT * FROM hobbies WHERE id IN (".implode(',', $hobbyIds).")";
$stmt = $pdo->query($query);
$hobbies = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 在页面上展示用户的爱好信息
foreach ($hobbies as $hobby) {
    echo $hobby['name']."<br>";
}
?>

Melalui langkah di atas, kami berjaya menyelesaikan masalah tidak dapat memaparkan maklumat hobi pengguna dalam pangkalan data PHP. Dengan mewujudkan jadual korelasi, menanyakan maklumat korelasi antara pengguna dan hobi, dan memaparkan maklumat hobi tertentu, kami boleh memaparkan maklumat hobi pengguna pada halaman.

Kesimpulan

Merupakan masalah biasa bahawa maklumat hobi tidak dapat dipaparkan secara langsung dalam pangkalan data, tetapi melalui reka bentuk dan operasi pertanyaan yang munasabah, kami boleh menyelesaikan masalah ini dengan mudah. Saya harap penyelesaian yang diterangkan dalam artikel ini berguna kepada anda. Jika anda mempunyai sebarang soalan atau cadangan, sila tinggalkan mesej untuk berkomunikasi.

Atas ialah kandungan terperinci Penyelesaian kepada masalah bahawa hobi tidak dapat dipaparkan dalam pangkalan data PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn