0

このコードを使用して、データベースからアップロードされたファイルを表示しました。最初にユーザーはファイル名を選択する必要があり、次に「ダウンロード」オプションでファイルの詳細 (名前 + サイズ + MIME ..) を表示できます。問題はこのページです。ファイルの詳細を 4 回繰り返し、名前とサイズとダウンロードをすべて繰り返しました。問題は何ですか?

ここに私のコードがあります

 $sql = "SELECT r.id, r.name , r.mime, r.size, r.date , s.email
          from project_report AS r
          JOIN evaluator_supervisor AS e
          JOIN student AS s      
          WHERE (s.PID = $PID AND e.EID1 = '$id' AND s.SID=r.SID) OR (s.PID = $PID AND e.EID2 = '$id' AND s.SID=r.SID) ";

$result = $dbLink->query($sql);

// Check if it was successfull
if($result) {
    // Make sure there are some files in there
    if($result->num_rows == 0) {
        echo '<p>"Sorry, No files uploaded"</p>';
    }
    else {
        // Print the top of a table
         echo '<center>';
        echo '<table width="90%">
                <tr>
                    <td><b>Name</b></td>

                    <td><b>Mime</b></td>
                    <td><b>Size (bytes)</b></td>
                    <td><b>Date</b></td>
                    <td><b>&nbsp;</b></td>
                    <td><b>Feedback</b></td>
                </tr>';

        // Print each file
        while($row = $result->fetch_assoc()) {
            echo "
                <tr>
                    <td>{$row['name']}</td>

                    <td>{$row['mime']}</td>
                    <td>{$row['size']}</td>
                    <td>{$row['date']}</td>
                    <td><a href='Download.php?id={$row['id']}'>Download</a></td>
                    <td><a href='messege2.php?id={$row['email']}'><img src='mail2.gif'/></a></td>
                </tr>";
        }

        // Close table
        echo '</table>';
         echo '</center>';
    }
4

2 に答える 2

1

GROUP BY r.idmysqlクエリに追加しますか?

編集:

クエリには、参加方法の条件が含まれていませんevaluator_supervisor AS e

于 2013-01-06T13:02:41.040 に答える
0

$idSQL クエリがとの一部の値に対して重複するタプルを生成しないようにしてください$PID。これは、たとえば、単一の「project_report」に対して複数の「evaluator_supervisor」がある場合に発生する可能性があります。

プログラムの外部で手動でクエリを実行してください。

テーブルの構造がわからないので、クエリの完全なロジックを取得できません。自分で理解するか、ここに投稿することをお勧めします。

于 2013-01-06T12:59:23.307 に答える