国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php資料庫操作之透過步驟做一個(gè)清單顯示

上一章我們按照我們的“資料庫連接天龍八步”,很順利的就完成了用戶註冊(cè)。

我們來做一個(gè)後臺(tái)的使用者清單展示。在實(shí)際的管理過程當(dāng)中,我們透過後臺(tái),可以個(gè)修改使用者的密碼和使用者的相關(guān)資料。

在後臺(tái)需要將所有使用者以表格的形式顯示出來就是使用者清單。

一、連接資料庫、判斷錯(cuò)誤和設(shè)定字元集

#連接、錯(cuò)誤判斷和字元集選擇都在上面已經(jīng)講過。舊規(guī)矩,第一步使用mysqli_connect連接資料庫。在第一節(jié)我們講過,可以在第四個(gè)參數(shù)加上函式庫選擇。就可以不用使用mysqli_select_db函數(shù)在後面再選擇一個(gè)資料庫了。

傳回的型別就是一個(gè)連線資源。我們?cè)趍ysqli_errno、mysqli_error和mysqli_set_charset都要傳入資源,才能確定我們操作的是哪個(gè)連接。

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

二、準(zhǔn)備並傳送SQL語句

#我們需要查詢的的候?qū)⑹褂谜逫D,使用者名稱、時(shí)間和IP都查出來。並且使用order by id 進(jìn)行降序排序。

按照人的思維人們一般喜歡看最新註冊(cè)的一批用戶。而ID自增,也就是ID在越大,就是時(shí)間註冊(cè)越新的用戶。因此我們?cè)趯慡QL語句的時(shí)寫上的是order by id desc。

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

三、判斷結(jié)果

查詢出來的結(jié)果只要SQL語句正確結(jié)果變數(shù)$result就為真。因此,實(shí)現(xiàn)的時(shí)候我們需要多加一步判斷,不只判斷$result。而且,判斷查詢出來的行數(shù)。

查詢出來的行數(shù)可以使用mysqli_num_rows。這個(gè)函數(shù)要求傳入$result查詢的結(jié)果變數(shù)。

如果有結(jié)果則顯示列表,如果沒有結(jié)果我們產(chǎn)生一句提示即可。

程式碼片段如下:

if($result && mysqli_num_rows($result)){
    //顯示列表代碼段
}else{
    //提示沒有結(jié)果的代碼段
}

四、循環(huán)顯示資料

所有結(jié)果我們需要使用清單的形式展示出來。表格的行和列和資料表的行和列是一樣的。所示展示起來很方便。

先宣告一個(gè)表格,每次迴圈的時(shí)候輸出一行。將結(jié)果展示到各個(gè)列裡面。

使用到的函數(shù)是mysqli_fetch_assoc,傳回的會(huì)是一個(gè)關(guān)聯(lián)陣列。

這個(gè)函數(shù)讀取一個(gè)結(jié)果集,會(huì)往後移動(dòng)一次。讀取到最後沒有結(jié)果的時(shí)候會(huì)回傳bool值的false。因此,我們選擇while來配合mysqli_fetch_assoc。

每次迴圈的結(jié)果賦值給$row,$row中是關(guān)聯(lián)數(shù)組。因此我在這次循環(huán)中,可以將行和列都顯示出來。

  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>';

五、增加編輯和刪除控制

#????1.刪除的時(shí)候我們分為單選刪除和多重選擇刪除。

????2.而編輯的時(shí)候,我們會(huì)選擇一個(gè)使用者

我們?cè)谏弦徊降某淌酱a中增加幾個(gè)小東西就在頁面中實(shí)作了刪除和編編。

我們來看看實(shí)際的效果圖,來推理具體的實(shí)現(xiàn)過程,效果如下:

2015-10-13_561c8906de39b.png

在實(shí)現(xiàn)過程當(dāng)中有幾個(gè)要點(diǎn):

????1.單選擇刪除和編輯時(shí)需使用get方法傳入ID,我們才知道要編輯或刪除的是哪個(gè)使用者。

????2.多重選取刪除時(shí),則需使用傳入多個(gè)使用者。因此,我們可以使用form表單,使用post方法來提交這批使用者ID。

單選刪除我們可以在delete.php後面我們跟上?加上id和值就點(diǎn)擊時(shí)進(jìn)行刪除請(qǐng)求即可。

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

?編輯使用者也是同理,我們?cè)趀dit.php加上?寫上id和值,點(diǎn)擊時(shí)就知道是需要編輯的哪個(gè)用戶了。

echo '<td><a href="edit.php?id=' . $row['id'] . '">編輯用戶</a></td>';

而多選刪除,我們需要使用到html中的checkbox,傳入多個(gè)使用者ID的時(shí)候需要在name 後面加上id[]。使用form表單將表格包起來,在表格外加上一個(gè)submit標(biāo)籤就實(shí)現(xiàn)了多選刪除。

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

程式碼如下:

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>';

六、關(guān)閉資料庫連接

我們操作完資料庫,關(guān)掉這個(gè)資料庫連接。

mysqli_close($conn);

我們整實(shí)現(xiàn)的使用者清單list.php程式碼如下:

<?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 '沒有數(shù)據(jù)';
}

mysqli_close($conn);
?>


#
繼續(xù)學(xué)習(xí)
||
<?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 '沒有數(shù)據(jù)'; } mysqli_close($conn); ?>
提交重置程式碼