ホームページ  >  記事  >  バックエンド開発  >  データベースにオプションの値を挿入するソリューション

データベースにオプションの値を挿入するソリューション

WBOY
WBOYオリジナル
2016-06-13 13:42:29723ブラウズ

データベース
アカウントにオプションの値を挿入: 20 個のオプションがあり、そのうち 5 個はオプションです。
クラス: 1 つだけ選択できます。

その後、自分で選択した 5 つの科目とクラスがデータベースに書き込まれます。こんな単純な機能を実現したのですが、やったことが適切ではなかったような気がします。

今度は、科目とクラスを 2 つのテーブルに分割します。これは 2 つの挿入に相当し、2 つの挿入の ID は AUTO_INCREMENT です。したがって、理論的には、対応する ID も一致する必要があります。しかし、明らかにこれは不合理です。

次に、このように書くと実際には勘定科目表を挿入する際に20項目すべてが書き込まれますが、選択した項目の値が書き込まれます。選択されていない項目は空白で書き込まれます。次に、20 個の値がすべて出力されますが、一部は空であるため、最終的には 5 個の値のみが出力されますが、実際には 20 個の値が出力されますが、残りの 15 個は空です。

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php
if(isset($_POST['submit'])){
    $subjects_sql = "insert into subjects (`subjects_01`,`subjects_02`,`subjects_03`,`subjects_04`,`subjects_05`,`subjects_06`,`subjects_07`,`subjects_08`,`subjects_09`,`subjects_10`,`subjects_11`,`subjects_12`,`subjects_13`,`subjects_14`,`subjects_15`,`subjects_16`,`subjects_17`,`subjects_18`,`subjects_19`,`subjects_20`) values('$_POST[subjects_01]','$_POST[subjects_02]','$_POST[subjects_03]','$_POST[subjects_04]','$_POST[subjects_05]','$_POST[subjects_06]','$_POST[subjects_07]','$_POST[subjects_08]','$_POST[subjects_09]','$_POST[subjects_10]','$_POST[subjects_11]','$_POST[subjects_12]','$_POST[subjects_13]','$_POST[subjects_14]','$_POST[subjects_15]','$_POST[subjects_16]','$_POST[subjects_17]','$_POST[subjects_18]','$_POST[subjects_19]','$_POST[subjects_20]')";
    $class_sql = "insert into class (`class_01`,`class_02`,`class_03`,`class_04`,`class_05`,`class_06`,`class_07`,`class_08`,`class_09`,`class_10`,`class_11`,`class_12`,`class_13`,`class_14`,`class_15`,`class_16`) values('$_POST[class_01]','$_POST[class_02]','$_POST[class_03]','$_POST[class_04]','$_POST[class_05]','$_POST[class_06]','$_POST[class_07]','$_POST[class_08]','$_POST[class_09]','$_POST[class_10]','$_POST[class_11]','$_POST[class_12]','$_POST[class_13]','$_POST[class_14]','$_POST[class_15]','$_POST[class_16]')";
    if(mysql_query($subjects_sql) and mysql_query($class_sql)){
          echo "<script>alert('提交成功');location.href='index.php';</script>";
      }else{
          echo "<script>alert('提交失败');location.href='index.php';</script>";
      }
}
?>



-----解決策---------------- - ---
私なら、次のような勘定科目表を作成します。
必要に応じて、勘定科目表の ID を に保存します。 1、2、3 などの文字列の形式。Select クラスは、select * from subject chart where id in (1,2,3)
を表示するときに、同じテーブル
も保存します。
------解決策---------
3 つのテーブル:
勘定科目表:
id
name

クラス:
id
name

選択テーブル:
id
被験者 ID (被験者 ID を保存 例: 1、2 ,3)
クラス ID (クラス ID を保存)

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