ホームページ データベース mysql チュートリアル PHP中在数据库中保存Checkbox数据_MySQL

PHP中在数据库中保存Checkbox数据_MySQL

Jun 01, 2016 pm 02:04 PM
str the 保存 データ データベース

CheckBox

 介绍

  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_skills 现在应是这样的:

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,
uid int,
skill_id int );

  这个表lookup_skills的目的是提供从用户表到开发技能表之间的一个映射关系。换句话说,它让我们保存开发者和他们有的技能,如,当求职者完成选择点击提交时,我们将填写这个表用checkbox中被选定的那些值。对于每一个选上的技能,我们在这个表中加一条记录,记下用户id及所选项的id。(想必大家都清楚了吧。我译到这,嘿嘿…)


在我们看这个插入记录的代码之前,我们先设计一下这个页面,应有的内容有一个表单,我们可以查询的数据库并且取checkbox标签从const_skills表中,建这个checkbox表单项。

代码如下:


/* insert code to connect to your database here */

/* get the checkbox labels */
$skills = get_checkbox_labels("const_skills");

/* create the html code for a formatted set of
checkboxes */
$html_skills = make_checkbox_html($skills, 3, 400, "skills[]");

? >






Check off your web development skills:








function get_checkbox_labels($table_name) {

/* make an array */
$arr = array();

/* construct the query */
$query = "SELECT * FROM $table_name";

/* execute the query */
$qid = mysql_query($query);

/* each row in the result set will be packaged as
an object and put in an array */
while($row= mysql_fetch_object($qid)) {
array_push($arr, $row);
}

return $arr;
}

/* Prints a nicely formatted table of checkbox choices.

$arr is an array of objects that contain the choices
$num is the number of elements wide we display in the table
$width is the value of the width parameter to the table tag
$name is the name of the checkbox array
$checked is an array of element names that should be checked
*/


function make_checkbox_html($arr, $num, $width, $name, $checked) {

/* create string to hold out html */
$str = "";

/* make it */
$str .= "n";
$str .= "n";

/* determine if we will have to close add
a closing tr tag at the end of our table */
if (count($arr) % $num != 0) {
$closingTR = true;
}

请看下一页

接上一页

$i = 1;
if (isset($checked)) {
/* if we passed in an array of the checkboxes we want
to be displayed as checked */
foreach ($arr as $ele) {
$str .= "id"";
foreach ($checked as $entry) {
if ($entry == $ele- >value) {
$str .= "checked";
continue;
}
}
$str .= " >";
$str .= "$ele- >value";

if ($i % $num == 0) {
$str .= "n";
} else {
$str .= "n";
}
$i++;
}

} else {
/* we just want to print the checkboxes. none will have checks */
foreach ($arr as $ele) {
$str .= "id" >";
$str .= "$ele- >value";

if ($i % $num == 0) {
$str .= "n";
} else {
$str .= "n";
}
$i++;
}

}

/* tack on a closing tr tag if necessary */
if ($closingTR == true) {
$str .= "n";
} else {
$str .= "n";
}

return $str;
}


? >

[第一节完]
----------------------------

作者:Dan LaFlamme
译者:sharetop(ycshowtop@21cn.com)
来源: www.phpbuilder.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iPhoneのセルラーデータインターネット速度が遅い:修正 iPhoneのセルラーデータインターネット速度が遅い:修正 May 03, 2024 pm 09:01 PM

iPhone のモバイル データ接続に遅延や遅い問題が発生していませんか?通常、携帯電話の携帯インターネットの強度は、地域、携帯ネットワークの種類、ローミングの種類などのいくつかの要因によって異なります。より高速で信頼性の高いセルラー インターネット接続を実現するためにできることがいくつかあります。解決策 1 – iPhone を強制的に再起動する 場合によっては、デバイスを強制的に再起動すると、携帯電話接続を含む多くの機能がリセットされるだけです。ステップ 1 – 音量を上げるキーを 1 回押して放します。次に、音量小キーを押して、もう一度放します。ステップ 2 – プロセスの次の部分は、右側のボタンを押し続けることです。 iPhone の再起動が完了するまで待ちます。セルラーデータを有効にし、ネットワーク速度を確認します。もう一度確認してください 修正 2 – データ モードを変更する 5G はより優れたネットワーク速度を提供しますが、信号が弱い場合はより適切に機能します

超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 Apr 29, 2024 pm 06:55 PM

世界は狂ったように大きなモデルを構築していますが、インターネット上のデータだけではまったく不十分です。このトレーニング モデルは「ハンガー ゲーム」のようであり、世界中の AI 研究者は、データを貪欲に食べる人たちにどのように餌を与えるかを心配しています。この問題は、マルチモーダル タスクで特に顕著です。何もできなかった当時、中国人民大学学部のスタートアップチームは、独自の新しいモデルを使用して、中国で初めて「モデル生成データフィード自体」を実現しました。さらに、これは理解側と生成側の 2 つの側面からのアプローチであり、両方の側で高品質のマルチモーダルな新しいデータを生成し、モデル自体にデータのフィードバックを提供できます。モデルとは何ですか? Awaker 1.0 は、中関村フォーラムに登場したばかりの大型マルチモーダル モデルです。チームは誰ですか?ソフォンエンジン。人民大学ヒルハウス人工知能大学院の博士課程学生、ガオ・イージャオ氏によって設立されました。

アメリカ空軍が初のAI戦闘機を公開し注目を集める!大臣はプロセス全体を通じて干渉することなく個人的にテストを実施し、10万行のコードが21回にわたってテストされました。 アメリカ空軍が初のAI戦闘機を公開し注目を集める!大臣はプロセス全体を通じて干渉することなく個人的にテストを実施し、10万行のコードが21回にわたってテストされました。 May 07, 2024 pm 05:00 PM

最近、軍事界は、米軍戦闘機が AI を使用して完全自動空戦を完了できるようになったというニュースに圧倒されました。そう、つい最近、米軍のAI戦闘機が初めて公開され、その謎が明らかになりました。この戦闘機の正式名称は可変安定性飛行シミュレーター試験機(VISTA)で、アメリカ空軍長官が自ら飛行させ、一対一の空戦をシミュレートした。 5 月 2 日、フランク ケンダル米国空軍長官は X-62AVISTA でエドワーズ空軍基地を離陸しました。1 時間の飛行中、すべての飛行動作が AI によって自律的に完了されたことに注目してください。ケンダル氏は「過去数十年にわたり、私たちは自律型空対空戦闘の無限の可能性について考えてきたが、それは常に手の届かないものだと思われてきた」と語った。しかし今では、

テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! May 06, 2024 pm 04:13 PM

テスラのロボット「オプティマス」の最新映像が公開され、すでに工場内で稼働可能となっている。通常の速度では、バッテリー(テスラの4680バッテリー)を次のように分類します:公式は、20倍の速度でどのように見えるかも公開しました - 小さな「ワークステーション」上で、ピッキング、ピッキング、ピッキング:今回は、それがリリースされたハイライトの1つビデオの内容は、オプティマスが工場内でこの作業を完全に自律的に行​​い、プロセス全体を通じて人間の介入なしに完了するというものです。そして、オプティマスの観点から見ると、自動エラー修正に重点を置いて、曲がったバッテリーを拾い上げたり配置したりすることもできます。オプティマスのハンドについては、NVIDIA の科学者ジム ファン氏が高く評価しました。オプティマスのハンドは、世界の 5 本指ロボットの 1 つです。最も器用。その手は触覚だけではありません

2024年のQSランキングを公開!コンピューターサイエンスのMITがリストを独占、清華大学が11位、北京大学が15位 2024年のQSランキングを公開!コンピューターサイエンスのMITがリストを独占、清華大学が11位、北京大学が15位 Apr 18, 2024 pm 09:04 PM

2024QS 分野別世界大学ランキングはこちら!全体としては、2023 年からの変化はほとんどありません。公式ウェブサイトの情報によると、2024QS 主題別世界大学ランキングは 55 の下位部門と 5 つの主要学術分野をカバーしています。合計 1,559 の大学がランキングに参加し、そのうち 64 大学が今年の新人大学です (つまり、2023 年のランキングには登場しません)。この 64 大学のうち、本当に初めて登場する大学が 14 校あります。その中には中国科学院大学も含まれます。洗練された科目によると、音楽は今年度から新設された科目です。さらに、データ サイエンスと人工知能のランキングも拡大され、新たに 51 の大学がランキングに追加されました。全体リストの上位 5 位は、マサチューセッツ工科大学、ケンブリッジ大学、オックスフォード大学、ハーバード大学です。

Llama 70B を実行するシングル カードはデュアル カードより高速、Microsoft は FP6 を A100 オープンソースに強制導入 Llama 70B を実行するシングル カードはデュアル カードより高速、Microsoft は FP6 を A100 オープンソースに強制導入 Apr 29, 2024 pm 04:55 PM

FP8 以下の浮動小数点数値化精度は、もはや H100 の「特許」ではありません。 Lao Huang は誰もが INT8/INT4 を使用できるようにしたいと考え、Microsoft DeepSpeed チームは NVIDIA からの公式サポートなしで A100 上で FP6 の実行を開始しました。テスト結果は、A100 での新しい方式 TC-FPx の FP6 量子化が INT4 に近いか、場合によってはそれよりも高速であり、後者よりも精度が高いことを示しています。これに加えて、エンドツーエンドの大規模モデルのサポートもあり、オープンソース化され、DeepSpeed などの深層学習推論フレームワークに統合されています。この結果は、大規模モデルの高速化にも即座に影響します。このフレームワークでは、シングル カードを使用して Llama を実行すると、スループットはデュアル カードのスループットの 2.65 倍になります。 1つ

Open-Sora の包括的なオープンソース アップグレード: 16 秒のビデオ生成と 720p 解像度をサポート Open-Sora の包括的なオープンソース アップグレード: 16 秒のビデオ生成と 720p 解像度をサポート Apr 25, 2024 pm 02:55 PM

Open-Sora は、オープン ソース コミュニティで密かに更新され、最大 720p の解像度で最大 16 秒のビデオ生成をサポートし、テキストから画像へ、テキストからビデオへ、画像からビデオへの変換を処理できます。あらゆるアスペクト比のビデオ間の処理や、無限に長いビデオの生成ニーズにも対応します。試してみましょう。横画面のクリスマス雪景色を生成し、B サイトに投稿してから縦画面を生成し、Douyin を使用して 16 秒のビデオを生成します。これで、誰もが脚本に夢中になる生活を送ることができます。ガイダンス GitHub: https://github.com/hpcaitech/Open-Sora さらにすごいのは、Open-Sora は、最新のモデル アーキテクチャ、最新のモデルの重み、マルチタイム/解像度/長期を含め、依然としてすべてオープン ソースであるということです。

リリースから数時間以内に、Microsoft は GPT-4 に匹敵する大規模なオープン ソース モデルを数秒で削除しました。毒物検査を受けるのを忘れた リリースから数時間以内に、Microsoft は GPT-4 に匹敵する大規模なオープン ソース モデルを数秒で削除しました。毒物検査を受けるのを忘れた Apr 23, 2024 pm 05:22 PM

先週、MicrosoftはGPT-4レベルと呼ばれるオープンソースモデルであるWizardLM-2をエアドロップした。しかし、投稿されてから数時間後にすぐに削除されるとは思いませんでした。一部のネチズンは、WizardLM のモデル ウェイトと発表投稿がすべて削除され、Microsoft のコレクションになくなったことを突然発見しました。このサイトについての言及を除けば、これが Microsoft の公式プロジェクトであることを証明する証拠は見つかりませんでした。 GitHub プロジェクトのホームページが 404 になりました。プロジェクトアドレス: https://wizardlm.github.io/ HF 上のモデルの重みを含め、すべてが消えてしまいました...ネットワーク全体が混乱に満ちています、なぜ WizardLM は消えたのですか?しかし、Microsoft がこのようなことを行った理由は、チームがモデルを「テスト」するのを忘れたためです。後はマイクロ

See all articles