0

PHPとMySQLのコードについてサポートが必要です。現在、データベース内のテーブルの内容を表示するphpファイルがあります。「未予約」に一致する結果は省略したいのですが。したがって、ファイルには予約されたスロットのみが表示されます。これが私のコードです:

<link href="../css/pagestyle.css" rel="stylesheet" type="text/css" />
<?php 
include("../config.php");
include("functions.php");
if($logged["level"] == "HDJ" OR $logged["level"] == "SA") {

echo "<div class=\"head\">View Booked Slots</div>
<img src=\"../images/spacer.png\" width=\"5\" height=\"5\">
<div class=\"board\">Here you can view booked slots.</div>
<img src=\"../images/spacer.png\" width=\"5\" height=\"5\">
<table width=\"580px\" class=\"board\" border=\>";
      $order = "SELECT * FROM timetable";
      $result = mysql_query($order);
      while ($row=mysql_fetch_array($result)){
        echo ("<tr><td>$row[username]</td>");

        </tr>");
      }
      echo "
      </table>
"; 


    } else {
echo ("<div class=\"caution\">Access is denied.</div>");
}
?> 
4

3 に答える 3

2

そもそもプルしないようにクエリを変更します。

$order = "SELECT * FROM timetable WHERE <the column> <> 'Not Booked';

<the column>が表示されるテーブルの正しい列名に置き換えNot Bookedます。

ここで行ったように、データベースロジックと表示ロジックを混在させることはお勧めできません。代わりに、テーブルを出力する前にクエリを実行し、その結果を配列に格納する必要があります。次に、配列をループしてテーブルを表示します。

$order = "SELECT * FROM timetable WHERE somecolumn <> 'Not Booked'";
$result = mysql_query($order);

// Error checking
if (!$result) {
  // output error, take other action
}
else {
  while ($row=mysql_fetch_array($result)){
     // Append all results onto an array
     $rowset[] = $row;
  }
}

後で、配列をループして値を出力します。を使用してHTML出力用にエスケープすることを忘れないでくださいhtmlspecialchars()

foreach ($rowset as $row) {
  echo "<tr><td>" . htmlspecialchars($row['username']) . "</td></tr>";
}
于 2012-04-11T15:16:25.283 に答える
1

mySQLコードの場合:

SELECT * FROM timetable WHERE myvariable <> 'Not Booked'
于 2012-04-11T15:17:06.050 に答える