簡體   English   中英

使用 PHP 和 MySQL 列出記錄

[英]List records with PHP and MySQL

我創建了一個表格(筆記本),用於保存用戶的文本。 表是這樣的:

+------+------------+-------+------+--------+------------------------+
|  id  |  Username  | title | html | public |  create_date           |
|--------------------------------------------------------------------|
|   1  | sorge13248 | Test  | ...  |  n     |2012-11-24 9:00:00      |
+------+------------+-------+------+--------+------------------------+

id = INT(25) A_I 非空
用戶名 = VARCHAR(65) 非空
標題 = VARCHAR(26) 非空
html = 長文本非空
公共 = VARCHAR(11) 非空
create_date = TIMESTAMP CURRENT_TIMESTAMP NOT NULL

因此,我嘗試使用此代碼列出用戶的所有筆記本記錄:

$link = mysql_connect("localhost", "mysql_user", "password");
mysql_select_db("notebook", $link);

$result = mysql_query("SELECT * FROM notebook WHERE Username = '"$username."'", $link);

if(0 == mysql_num_rows($result)) {
    echo 'No notebook was created for this user';
}
else { 
    while(row = mysql_fetch_array($result)) {
       // do whatever you want with the data here
    }
}

代碼取自: 如何使用單個查詢列出查詢的行或顯示“無記錄” ,我已經對其進行了編輯,以便與我的表一起使用。

現在,我很困惑,我必須在“// 對這里的數據做任何你想做的事情”字符串中寫什么來列出記錄?

編輯:現在,我有這個代碼,但 Chrome 顯示“HTTP 500 錯誤,內部服務器錯誤”:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Notebook</title>
</head>

<body>
<h1>Notebook</h1><br/>
<?=
$link = mysql_connect("localhost", "database_username", "password");
mysql_select_db("database_name", $link);

$result = mysql_query("SELECT * FROM notebook", $link);

// If if result set contains rows
if(0 == mysql_num_rows($result)) {
    echo 'No notebook was created for this user';
}
else { 
    while(row = mysql_fetch_array($result)) {
   printf( '%d: &quot;%s&quot; by %s<br />', $row['id'], 
                 htmlspecialchars($row['title']), 
                 htmlspecialchars($row['Username']) );
}
}
?>
</body>

</html>

錯誤在哪里? 正確提供 MySQL 憑據...

示例:您可以使用 echo $row['title']打印用戶的筆記標題。

使用var_dump($row)查看更多信息。

使用您想要顯示的任何內容形成 HTML,因此您的while循環將如下所示,即:

while(row = mysql_fetch_array($result)) {
   printf( '%d: &quot;%s&quot; by %s<br />', $row['id'], 
                 htmlspecialchars($row['title']), 
                 htmlspecialchars($row['Username']) );
}

它將列出所有項目,例如

1: "Test" by sorge13248

PS:您應該始終使用相同的命名約定以避免出現問題。 在您的數據庫中,除Username外,所有列都是小寫的)。

首先,不鼓勵使用mysql_函數,因為它將來會被棄用。 考慮更改您的代碼以使用MySQLiPDO API。

您可以在 php 手冊文章中閱讀更多信息:選擇 API

正如php手冊中所述mysql_fetch_array函數:

以關聯數組、數值數組或兩者的形式獲取結果行

然后移動到下一行,直到沒有任何其他行有結果,此時函數將返回 false 並且您的循環將結束。

在您的特定情況下, $row 變量將返回以下結果:

$row['id'] = 1;
$row['Username']= "sorge13248"; 
$row['title']= "Test"; 
$row['html']="... &";
$row['public']="n';
$row['create_date']="2012-11-24 9:00:00";   

因此, do whatever you want本教程都意味着您可以通過使用上述方法訪問數據庫來返回結果。 例如,假設您有興趣回顯某個用戶的創建日期,您可以執行以下操作:

echo "<p>User: ".$row['Username']." was created in: ". $row['create_date']</p>";

將以下內容輸出到腳本生成的頁面:

<p>User: sorge1348 was created in: 2012-11-24 9:00:00</p>

我希望它有幫助,干杯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM