2

誰かが入力する単純なフォームと、クエリを実行してデータを取得する別のフォームがあります。

フォームに画像のアップロードを含め、この画像を含むフォームデータを表示するテーブルを取得するというアイデアをいじっています。

これは私が持っているコードの一部です

 if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $uname = $_POST['username'];
    $password = $_POST['password'];

    $uname = htmlspecialchars($uname);
    $password = htmlspecialchars($password);

    //==========================================
    //  CONNECT TO THE LOCAL DATABASE
    //==========================================
    $user_name = "xxxxxx";
    $pass_word = "xxxxxx";
    $database = "xxxxx";
    $server = "xxxxxx";

    $db_handle = mysql_connect($server, $user_name, $pass_word);
    $db_found = mysql_select_db($database, $db_handle);

    if ($db_found) {



        $SQL = "SELECT * FROM students WHERE L1 = '$uname' AND L2 = '" .md5 ($_POST['password'])."'";
        $result = mysql_query($SQL);
        $num_rows = mysql_num_rows($result);

    //====================================================
    //  CHECK TO SEE IF THE $result VARIABLE IS TRUE
    //====================================================

        if ($result) {
            if ($num_rows > 0) {
                $color="1";


$result = mysql_query("SELECT * FROM entry, students   WHERE entry.studentName = students.studentName AND students.L1='$uname' ") 
or die(mysql_error());  

echo "<p>You records as of ";
echo date('l jS \of F Y h:i:s A');
echo "<table border='1' cellpadding='2' cellspacing='0'>";
echo "<tr> <th>Date</th><th>Student Name</th> <th>Tutor name</th> <th>Procedure name</th> <th>Grade</th><th>Student Reflection</th><th>Tutor Comments</th><th>Professionalism</th> <th>Communication</th> <th>Alert</th> <th>Dispute</th><th>Username</th> <th>Image</th></tr>";
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {

if($color==1){
echo "<tr bgcolor= >
<td>".$row['date']."</td><td>".$row['studentName']."</td><td>".$row['tutorName']."</td><td>".$row['procedureName']."</td><td>".$row['grade']."</td><td>".$row['studentReflection']."</td><td>".$row['tutorComments']."</td><td>".$row['professionalism']."</td><td>".$row['communication']."</td><td>".$row['alert']."</td><td>".$row['dispute']."<td>".$row['L1']."</td></td>
<td><img src='images/".$row['studentImage']."'></td>;


</tr>";

// Set $color==2, for switching to other color
$color="2";
}

// When $color not equal 1, use this table row color
else {
echo "<tr bgcolor='#4eb557'>
<td>".$row['date']."</td><td>".$row['studentName']."</td><td>".$row['tutorName']."</td><td>".$row['procedureName']."</td><td>".$row['grade']."</td><td>".$row['studentReflection']."</td><td>".$row['tutorComments']."</td><td>".$row['professionalism']."</td><td>".$row['communication']."</td><td>".$row['alert']."</td><td>".$row['dispute']."<td>".$row['L1']."</td></td>
<td><img src='images/".$row['studentImage']."'></td>;
</tr>";
// Set $color back to 1
$color="1";
}

}
echo '</table>';

結果が戻ってきたら、文字の負荷として表示されている画像以外のすべてのデータを取得しました。

どこが間違っていますか?

4

3 に答える 3

0

画像をデータベースに保存する必要があるため、同じ問題を抱えている人への SOリンクを次に示します。

于 2012-10-22T14:52:45.710 に答える
0

あなたのフォームにはこれがありますか?

enctype=multipart/form-data

初期化?そうしないと、画像をファイルとしてアップロードできません。
フォームが少なくとも次のようになっていることを確認してください。

<form method="post" action="URL_THINGY" enctype=multipart/form-data>
     (The rest of your form here)
<form>
于 2012-10-22T14:48:34.193 に答える
0

画像コンテンツをデータベースに保存してから PHP で表示する場合は、次の 2 つのことを行う必要があります。

  1. データベースに保存する前に base64 エンコードを実行して、データが奇妙な/欠陥のある文字で構成されないようにする
  2. 画像を表示するときは、php でそれらをエコーし​​、ファイル ヘッダーを画像に設定します。
header('Content-Type: 画像/png');

しかし、すでに述べたようにgenerate、画像にランダムな名前を付け、フォルダーに保存し、画像へのパスのみをデータベースに保存することをお勧めします。

于 2012-10-22T14:51:37.690 に答える