Operasi pangkalan data PHP: buat paparan senarai melalui langkah-langkah

Dalam bab sebelumnya, kami mengikuti "Lapan Langkah untuk Sambungan Pangkalan Data" kami dan berjaya menyelesaikan pendaftaran pengguna.

Mari buat paparan senarai pengguna latar belakang. Dalam proses pengurusan sebenar, kami boleh mengubah suai kata laluan pengguna dan maklumat berkaitan pengguna secara individu melalui bahagian belakang.

Di latar belakang, semua pengguna perlu dipaparkan dalam jadual, iaitu senarai pengguna.

1 Menyambung ke pangkalan data, menilai ralat dan menetapkan set aksara

Sambungan, penghakiman ralat dan pemilihan set aksara semuanya telah dibincangkan. di atas. Peraturan lama, langkah pertama ialah menggunakan mysqli_connect untuk menyambung ke pangkalan data. Seperti yang kami katakan dalam bahagian pertama, anda boleh menambah pemilihan perpustakaan dalam parameter keempat. Anda tidak perlu lagi menggunakan fungsi mysqli_select_db untuk memilih pangkalan data sekali lagi kemudian.

Jenis yang dikembalikan ialah sumber sambungan. Kita mesti memasukkan sumber dalam mysqli_errno, mysqli_error dan mysqli_set_charset untuk menentukan sambungan yang kami kendalikan.

$conn = mysqli_connect('localhost', 'root', 'secret', 'book');
if (mysqli_errno($conn)) {
    mysqli_error($conn);
    exit;
}
mysqli_set_charset($conn, 'utf8');

2 Sediakan dan hantar penyata SQL

ID pengguna, nama pengguna, masa dan IP yang perlu kami buat pertanyaan ialah Cari. keluar. Dan gunakan tertib mengikut id untuk mengisih mengikut tertib menurun.

Menurut pemikiran manusia, orang ramai secara umumnya suka melihat kumpulan pengguna berdaftar terkini. ID meningkat secara automatik, iaitu, lebih besar ID, lebih ramai pengguna baharu didaftarkan. Oleh itu, apabila kami menulis pernyataan SQL, kami menulis pesanan mengikut id desc.

$sql = "select id,username,createtime,createip from user order by id desc";
$result = mysqli_query($conn, $sql);

3. Keputusan penghakiman

Selagi pernyataan SQL adalah betul, pembolehubah hasil $result adalah benar. Oleh itu, kita perlu menambah satu lagi langkah pertimbangan semasa pelaksanaan, bukan sahaja $hasil. Selain itu, tentukan bilangan baris yang ditanya.

Untuk menanyakan bilangan baris, anda boleh menggunakan mysqli_num_rows. Fungsi ini memerlukan pembolehubah hasil pertanyaan $result dihantar masuk.

Jika ada keputusan, senarai akan dipaparkan Jika tiada hasil, kami boleh menjana gesaan.

Coretan kod adalah seperti berikut:

if($result && mysqli_num_rows($result)){
    //显示列表代码段
}else{
    //提示没有结果的代码段
}

4 Data paparan gelung

Kami perlu memaparkan semua hasil dalam. bentuk senarai. Baris dan lajur jadual adalah sama dengan jadual data. Ditunjukkan adalah mudah untuk dipaparkan.

Isytiharkan jadual dahulu dan keluarkan satu baris setiap kali ia gelung. Paparkan keputusan dalam setiap lajur.

Fungsi yang digunakan ialah mysqli_fetch_assoc, yang mengembalikan tatasusunan bersekutu.

Fungsi ini membaca set hasil dan bergerak ke belakang sekali. Apabila tiada hasil selepas membaca, nilai bool palsu akan dikembalikan. Oleh itu, kami memilih semasa untuk bekerjasama dengan mysqli_fetch_assoc.

Hasil setiap gelung diberikan kepada $row dan $row ialah tatasusunan bersekutu. Jadi dalam gelung ini, saya boleh memaparkan kedua-dua baris dan lajur.

  echo '<table width="800" border="1">';
    while ($row = mysqli_fetch_assoc($result)) {
        echo '<tr>';
        echo '<td>' . $row['username'] . '</td>';
        echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>';
        echo '<td>' . long2ip($row['createip']) . '</td>';
        echo '</tr>';
    }
    echo '</table>';

5. Tambah kawalan pengeditan dan pemadaman

1. Apabila memadam, kami membahagikannya kepada pemadaman pilihan tunggal dan pemadaman berbilang pilihan .

2. Semasa mengedit, kami akan memilih pengguna

Kami menambahkan beberapa perkara kecil pada kod dalam langkah sebelumnya untuk melaksanakan pemadaman dan pengeditan pada halaman.

Mari kita lihat rendering sebenar untuk menaakul tentang proses pelaksanaan tertentu Kesannya adalah seperti berikut:

2015-10-13_561c8906de39b.png

Terdapat beberapa perkara penting dalam. proses pelaksanaan:

1. Apabila memilih padam atau edit, anda perlu menggunakan kaedah get untuk lulus dalam ID, supaya kami tahu pengguna mana yang hendak diedit atau dipadamkan.

2. Apabila memadamkan berbilang pilihan, anda perlu memasukkan berbilang pengguna. Oleh itu, kami boleh menggunakan borang borang dan kaedah siaran untuk menyerahkan kumpulan ID pengguna ini.

Untuk pemadaman pilihan tunggal, kami boleh mengikuti delete.php dan menambah id dan nilai untuk membuat permintaan padam apabila diklik.

echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>';

Begitu juga dengan pengguna yang mengedit. Kami menambah ?

echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>';

Untuk pemadaman berbilang pilihan, kami perlu menggunakan kotak pilihan dalam HTML Apabila menghantar berbilang ID pengguna, kami perlu menambah id[] selepas nama. Gunakan borang untuk membalut jadual dan tambah teg serah di luar jadual untuk mencapai pemadaman berbilang pilihan.

<form action="delete.php" method="post">
echo '<td><input type="checkbox" name="id[]" value="' . $row['id'] . '" /></td>';
echo '<input type="submit" value="删除" />';
echo '</form>';

Kodnya adalah seperti berikut:

echo '<form action="delete.php" method="post">';
    echo '<table width="800" border="1">';
    while ($row = mysqli_fetch_assoc($result)) {
        echo '<tr>';
        echo '<td><input type="checkbox" name="id[]" value="' . $row['id'] . '" /></td>';
        echo '<td>' . $row['username'] . '</td>';
        echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>';
        echo '<td>' . long2ip($row['createip']) . '</td>';
        echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>';
        echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>';
        echo '</tr>';
    }
    echo '</table>';
    echo '<input type="submit" value="删除" />';
    echo '</form>';

6 Tutup sambungan pangkalan data

Selepas kami selesai mengendalikannya. pangkalan data, tutup sambungan pangkalan data.

mysqli_close($conn);

Kod senarai pengguna.php yang kami laksanakan adalah seperti berikut:

<?php

$conn = mysqli_connect('localhost', 'root', 'secret', 'book');

if (mysqli_errno($conn)) {
   mysqli_error($conn);
   exit;
}

mysqli_set_charset($conn, 'utf8');

$sql = "select id,username,createtime,createip from user order by id desc";

$result = mysqli_query($conn, $sql);

if ($result && mysqli_num_rows($result)) {


   echo '<table width="800" border="1">';

   while ($row = mysqli_fetch_assoc($result)) {

       echo '<tr>';

       echo '<td>' . $row['username'] . '</td>';
       echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>';
       echo '<td>' . long2ip($row['createip']) . '</td>';
       echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>';
       echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>';

       echo '</tr>';
   }

   echo '</table>';

} else {
   echo '没有数据';
}

mysqli_close($conn);
?>


Meneruskan pembelajaran
||
<?php $conn = mysqli_connect('localhost', 'root', 'secret', 'book'); if (mysqli_errno($conn)) { mysqli_error($conn); exit; } mysqli_set_charset($conn, 'utf8'); $sql = "select id,username,createtime,createip from user order by id desc"; $result = mysqli_query($conn, $sql); if ($result && mysqli_num_rows($result)) { echo '<table width="800" border="1">'; while ($row = mysqli_fetch_assoc($result)) { echo '<tr>'; echo '<td>' . $row['username'] . '</td>'; echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>'; echo '<td>' . long2ip($row['createip']) . '</td>'; echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>'; echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>'; echo '</tr>'; } echo '</table>'; } else { echo '没有数据'; } mysqli_close($conn); ?>
  • Cadangan kursus
  • Muat turun perisian kursus