PHP中在資料庫中保存Checkbox資料(1)_PHP教程
? >
介紹
checkbox是一個非常有用的頁面表單項,在讓使用者進行多重選擇的情況下,它甚至可以允許使用者選擇全部項目或是一個都不選。但是,儘管這是一個非常優秀的表單元素,但在我們的工作中,在如何正確地保存選擇項這方面總存在一些易混淆的情況發生。本文將描述在遵循好的資料庫設計原則的方法下,如何把checkbox選擇項正確地保存在資料庫中。
要求
本文將闡述如何把選擇項目正確地保存在使用者資料庫中的方法。儘管這裡包括了有用的PHP程式碼,但我將從資料庫設計的觀點來表達它們,所以,你可以很方便地使用任何一個資料庫和伺服器端腳本語言來實現。我只是想提供一個如何做的方法,讓你能應用於你自己的網站。如果你想運行這裡的原始碼,你需要安裝php、mysql和網頁伺服器。
例1:招聘站點
假如你被要求做一個招聘類的網站,允許求職的軟體開發人員填寫他們的技能,讓雇主能訪問這個站點並根據求職者的技能找到合適的員工。你也知道,一個開發人員擁有的技能會多於一個,因此你決定這樣設計你的網站。
每一個求職者將允許訪問本站,註冊一個用戶,並且輸入他的技能,Checkbox就派上用場了,你可能想作這樣的一頁:
__ PHP __ MySQL __ Zope
__ Perl __ Javascript __ JSP
[提交]
每一個求職都可以選擇他所擁有的技能。顯然對於不同人來說這選擇項是不同的。一個人可能會是PHP和Mysql,其它人可能只是JSP。你將如何保存這些選擇?一個很自然的想法是針對每個選項建立一個字段,這樣開始可以正常工作。但隨後你可能會發現,當你想擴展或調整時,麻煩就來了,你可能必須修改你的表結構。
好的方法應是這樣的:
你應有一個用戶表包含用戶的註冊信息,如用戶名、密碼和其它一些你需要的什麼內容。如果你直接使用本文後面給出的源碼,你要建立一個簡單的表如下:
id username
1 User1
2 User2
3 User3
我們先建一個表格"const_skills" 用如下的SQL 語句:
SQL> CREATE TABLE const_skills (
id int not null primary key,
value varchar(20) );
SQL> INSERT INTO const_skills(id, value) VALUES (1, "PHP");
SQL> INSERT INTO const_skills(id, value) VALUES (2, "MySQL ");
SQL> INSERT INTO const_skills(id, value) VALUES (3, "Zope");
SQL> INSERT INTO const_skills(id, value) VALUES (4, "Perl");
SQL> INSERT INTO const_skills(id, value) VALUES (5, "Javascript");
SQL> INSERT INTO const_skills(id, value) VALUES (6, "JSP");
你的const_lls>你的const_lls現在應是這樣的:
id value
1 PHP
2 MySQL
3 Zope
4 Perl
5 Javascript
6 JSP
這個表只是讓使用者可以選擇對應的技能,現在,再建一個表lookup_skills 用以下的SQL:
SQL> CREATE TABLE lookup_skills (
id int not null auto_increment primary key,
id int not null auto_increment primary key,
uid int not null auto_increment primary key,
uid int not null auto_increment primary key, uid int , skill_id int ); 這個表lookup_skills的目的是提供從用戶表到開發技能表之間的一個映射關係。換句話說,它讓我們保存開發者和他們擁有的技能,如,當求職者完成選擇點擊提交時,我們將填寫這個表用checkbox中被選定的那些值。每一個選上的技能,我們在這個表中加一筆記錄,記下用戶id及所選用的id。 (想必大家都清楚了吧。我譯到這,嘿嘿…) 在我們看這個插入記錄的代碼之前,我們先設計一下這個頁面,應有的內容有一個表單,我們可以查詢的資料庫並且取checkbox標籤從const_skills表中,建這個checkbox表單項目。
程式碼如下:
/* 在此插入連接資料庫的程式碼*/
/* 取得複選框標籤*/
$skills = get_checkbox_labels("const_skills");
/* 為一組格式化的
複選框建立html 程式碼*/
$html_skills = make_check_html($skills, 33 , 400, "skills[]");
? >
檢查您的網頁開發技能:
function get_checkbox_labels($table_name) {
/* 建立一個陣列*/
$arr = array();
/* 建構查詢* /
$query = "SELECT * FROM $table_name";
/* 執行查詢*/
$qid = mysql_query($query);
/* 結果集中的每一行都會被打包為
對象,放入數組中*/
while($row= mysql_fetch_object($qid)) {
array_push( $arr, $row);
}
array_push( $arr, $row);
}
回傳$arr;
}
/* 列印格式良好的複選框選項表。
$arr 是包含選項的物件陣列
$num 是我們在表格中顯示的元素寬度
$width 是表格標籤的寬度參數值
$name 是複選框數組的名稱
$checked 是應檢查的元素名稱數組
*/
function make_checkbox_html($arr, $num, $ width, $name, $checked) {
/* 建立字串來儲存html */
$str = "";
/* 製作它*/
$str .= "n";
$str .= "n";
/* 決定是否必須在表格末尾加上
結束tr 標記*/
if (count($arr) % $num != 0) {
$closeTR = true;
}
$i = 1;
if (isset($checked)) {
/* 如果我們傳入了一個複選框數組,我們希望
顯示為已選中*/
foreach ($arr as $ele) {
$str .= "id"";
foreach ($checked as $entry) {
if ($entry == $ele->value) {
$str .= "checked";
繼續;
}
}
$str .= " >";
$str .= "$ele- >value" ;
if ($i % $num == 0) {
$str .= "n";
} else {
$str .= "n";
}
$i ;
}
} else {
/* 我們只想列印複選框。沒有人會檢查*/
foreach ($arr as $ele) {
$str .= " id“>”;
$str .= "$ele- >value";
if ($i % $num == 0) {
$str .= " n";
} else {
$str .= "n";
}
$i ;
}
}
}
/* 如果需要,新增結束tr 標籤*/
if ($ openingTR == true) {
$str .= "< ;/tr>表>n";
} else {
$str .= "n";
}
回傳$str;
}

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。
