0

新しい概念をコーディングしようとしています。ただし、うまくいくかどうかはわかりません。この時点で、私はアイデアをいじっているだけです。

したがって、私のデータベースには defaultpermissions というテーブルがあり、「名前」と「ステータス」の 2 つの列があります。ここで、名前は権限であり、ステータスはオンかオフか (1 または 0) を示します。

そのため、管理者がデフォルトのアクセス許可を保存するように設定できる defaultpermissions ページにチェックボックスのリストがあります。

チェックボックスごとに、その権限がオンかオフか (1 または 0) を確認します。

これを行う最善の方法は何ですか?

  1. 権限ごとに新しいクエリを実行する必要がありますか (get $status where $name = '$permission')
  2. または、while ステートメントのアクセス許可ごとに 2 つの列を一度に比較することはできますか?

非常に一般的で申し訳ありませんが、現時点では、私が理解しようとしている概念にすぎず、助けていただければ幸いです。

例:

権限の一部

  • ページを追加 [チェックボックス]
  • ページを非表示 [チェックボックス]
  • ページを削除 [チェックボックス]
  • コンテンツを追加する [チェックボックス]
  • 内容を編集する [チェックボックス]
  • ライブエディター [チェックボックス]

データベース:

  • 名前 = addpage ステータス = 0
  • 名前 = 非表示の状態 = 1
  • 名前 = ページ削除ステータス = 0
  • 名前 = addcontent ステータス = 1

などなど

そして、それぞれについて、行「name」と「status」を比較して、すでにアクティブかどうかを確認する必要があるため、ボックスをチェックするかどうかを判断します。権限ごとに新しいクエリを実行してもかまいませんが、いくつかあるので、それは悪いことかもしれないと考えました。現在、このページで確認できるデフォルトの権限オプションは約 20 あります。事前にご連絡いただきありがとうございます

PS Semi PHP は初めてで、学習しながら学んでいます...これを設定するためのより良い方法があれば教えてください。

4

2 に答える 2

0

問題の簡単な解決策は次のとおりです。

  • 権限のステータスを保持する非表示の入力フィールドを追加します(例を使用すると、これは1または0になります)
  • PHPを使用して、次のようなステートメントを使用します。

'<input type="checkbox" name="input Name Here" value="1"' . ($dbRow['Status'] == 1 ? ' checked="checked"' : '') . ' />';

上記の内容は、db selectから検出されたステータスを使用し、ステータスを使用してチェックボックスをデフォルトにします。

$ checkBoxVal =($ _GET ['checkBoxName']?1:($ _POST ['checkBoxName']?1:0));

$ hiddenVal =($ _GET ['hiddenFieldName'] == 1 || $ _POST ['hiddenFieldName'] == 1?1:0);

if($ checkBoxVal <> $ hiddenVal){

do updates here

} // END IF

これは、チェックボックスがオンになっているかどうかを確認します。もしそうなら$checkBoxVal1になります

次に、非表示の入力を介した最後の値と比較します。

非表示フィールドが0で、ボックスにチェックマークを付けてフォームを送信すると、値は同じにならず、必要な更新を実行できます。

私にとって、これは初期値が変更された場合にデータベース内の何かを変更するための優れた方法です(つまり、$.ajaxこれを動的に行うためにjQueryまたはXHRリクエストを使用していない場合)。

これに関する詳細情報が必要な場合、または例が必要な場合は、私に知らせてください。

これがお役に立てば幸いです。幸運を。=)

編集:

クエリでは、チェックボックスを使用して変更する行を選択する必要があります。

SELECT名、ステータスFROMdefaultpermissions

次にmysql_fetch_assoc、このような結果クエリでPHPの関数を使用します。

while($ row = mysql_fetch_assoc($ result)){

//ここで入力フィールドを実行し、返される行として$rowを使用します

} // END WHILE LOOP

多分これはそれを少し明確にするでしょう=)

于 2013-03-08T02:08:25.890 に答える