0

私はまだこれにまったく慣れておらず、多くのチュートリアルを調べてきた問題に遭遇しましたが、問題を解決する方法がわかりません。

SQLデータベースからデータを取得する選択クエリがありますが、データにアクセスするユーザーごとにデータをカスタマイズする必要があるため、さらにクエリを追加する必要があります。ユーザー値「$ user」でCookieを読み取り、データベースにはテーブルに入れられない列がありますが、列「プライバシー」の値が「1」に設定されていて、$user がその行の調査者ではないかどうかを確認する必要があります。テーブル。ただし、privacy='1' に設定されていないか、privacy=1 に設定されていて、investigator='$user' に設定されているすべてのデータを入力します。

$sql="SELECT * FROM evidence WHERE $evidencevariable = '".$evidencespecify."'";

$result = mysql_query($sql);

if($result === FALSE) {
    die(mysql_error());}

echo "<table class='sortable' border='1' id='table'>
<thead><tr>
<th>Id</th>
<th>Case Id</th>
<th>Investigator</th>
<th>Evidence Type</th>
<th>Created</th>
<th>Modified</th>
<th>LS</th>
<th>PS</th>
<th>Length</th>
<th>Importance</th>
<th>Information</th>
</tr></thead><tbody>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['Id'] . "</td>";
  echo "<td>" . $row['Case_ID'] . "</td>";
  echo "<td>" . $row['Investigator'] . "</td>";
  echo "<td>" . $row['Evidence_Type'] . "</td>";
  echo "<td>" . $row['Created'] . "</td>";
  echo "<td>" . $row['Modified'] . "</td>";
  echo "<td>" . $row['LS'] . "</td>";
  echo "<td>" . $row['PS'] . "</td>";
  echo "<td>" . $row['Length'] . "</td>";
  echo "<td>" . $row['Importance'] . "</td>";
  echo "<td>" . $row['Information'] . "</td>";
  echo "</tr>";
  }
echo "</tbody></table>"; 

この問題を回避するにはどうすればよいですか? 最初に select ステートメントにさらに追加する必要がありますか、それともテーブルに入れる前にデータを削除するために配列を照会する方法はありますか?

どんな助けでも大歓迎です!

4

1 に答える 1

0

SQLを次のように簡単に変更できるようです:

$sql="SELECT * FROM user WHERE $evidencevariable='$evidencespecifiy' AND (Privacy=0 or (Privacy=1 AND investigator='$user'))";
于 2013-03-29T13:41:16.430 に答える