1

これまでに行ったことで、画像をフォルダーにアップロードし、名前をデータベースに保存できます。私がやろうとしているのは、ブラウザで各画像をその横または下に対応する名前で表示できるようにすることです。しかし、私が持っているのは、間違った名前が割り当てられた間違った画像です。ブラウザの最初の画像には、データベース内のレコードの次の 2 つの名前が割り当てられます。私は何を間違っていますか?助けてください。

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

ページを追加:-

    <table width="760" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td height="100" align="center" bgcolor="#CC0000" class="header_title">Facilitators Panel
          <table width="600" height="30" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="448" class="header_title" height="20"></td>
              <td width="92" class="text2"><a href="cpanel.php?user=<?php echo $row_rsadmin['aID']; ?>">Control Panel</a></td>
              <td width="60" class="text2">Logout</td>
            </tr>
          </table></td>
      </tr>
      <tr>
        <td height="300" valign="top" bgcolor="#666666" class="text2"><table width="640" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td class="text2"><a href="adfacilitators.php?user=<?php echo $row_rsadmin['aID']; ?>">Back</a></td>
          </tr>
          <tr>
            <td class="text2">&nbsp;</td>
          </tr>
        </table>
          <table width="640" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="640" height="40" colspan="4" align="center"><form action="fac.php" method="post" enctype="multipart/form-data" name="fac" id="fac">
      <table width="580" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td height="1" align="right">&nbsp;</td>
        </tr>
        <tr>
          <td width="132" align="right" class="text3">Name:</td>
          <td width="10" rowspan="4">&nbsp;</td>
          <td colspan="2"><label>
            <input name="name" type="text" class="textbox" id="name" />
          </label></td>
        </tr>
        <tr>
          <td height="45" align="right"><p class="text3">Photo:</p></td>
          <td width="272" height="45"><input type="hidden" name="MAX_FILE_SIZE" value="256000" />
            <input name="photo" type="file" id="photo" size="26" /></td>
          <td width="166">&nbsp;</td>
        </tr>
        <tr>
          <td height="1" align="right">&nbsp;</td>
        </tr>
        <tr>
          <td height="40" align="right">&nbsp;</td>
          <td colspan="2" valign="top"><label>
            <input name="button" type="submit" class="readmore" id="button" value="Submit" />
          </label>
            <input name="button2" type="reset" class="readmore" id="button2" value="Reset" /></td>
        </tr>
      </table>
    </form></td>
          </tr>
          <tr>
            <td height="10" colspan="4" align="center"></td>
          </tr>
          </table></p></td></tr>
    </table>

処理ページ:-

    <?php require("../Connections/connMain.php"); ?>
    <?php

                // validation... since this is an image upload script we should run a check   
                // to make sure the uploaded file is in fact an image. Here is a simple check: 
                // getimagesize() returns false if the file tested is not an image. 
                if ($image = @getimagesize($_FILES['photo']['tmp_name'])&& ($_FILES["photo"]["size"]<= 2560000))
                {}
                else
                {
                    header("Location:error1.php");

                exit;
                }


       //This gets all the other information from the form 
      $name = htmlspecialchars($_POST['name']);
      $pix= ($_FILES['photo']['name']);
      $tmpName = $_FILES['photo']['tmp_name']; 


     //Writes the information to the database 
     mysql_query("INSERT INTO facilitators (photo, name) VALUES ('$pix', '$name')"); 


     //This is the directory where images will be saved 
     // Make sure the file was sent without errors
     //if($_FILES['photo']['error'] == 0) {
     $target = "../facilitators/";

     $target = $target  . basename( $_FILES['photo']['name']); 


     //Writes the photo to the server 
     if(move_uploaded_file($tmpName, $target)) 
     { 

     header("Location:adfacilitators.php");

     }
     else { 

     header("Location:error2.php");

     }
    ?>

出力ページ:

<div id="wrapper2">
    <div id="headercont"><?php require_once('header.html'); ?></div>
    <div id="bannercont"><?php require_once('banner.html'); ?></div>
    <div id="mainbody">
      <div id="sidelink"><?php require_once('sidelink.html'); ?></div>
        <div id="mainbodyr">
          <div class="clear_4"></div>
          <div id="subheadertext">Facilitators</div>
          <div class="clear_4"></div>
          <div id="mainbodycontentcont">
            <?php do { ?>
            <table width="520" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="150"><div id="mainbodypiccont">
                  <? $info = mysql_fetch_array( $rsFacilitator ); echo "<img src=http://localhost/youngatart/facilitators/".$info['photo'] ." width='150'>" ?>
                </div></td>
                <td width="370"><div id="mainbodytextcont">
                  <div id="text1"><?php echo $row_rsFacilitator['name']; ?></div>
                </div></td>
              </tr>
              <tr>
                <td height="20" colspan="2"></td>
              </tr>
            </table>
              <?php } while ($row_rsFacilitator = mysql_fetch_assoc($rsFacilitator)); ?>
          </div>
        </div>
        <div class="clear_5"></div>
    </div>
    </div>
</body>
4

2 に答える 2

2

これを確認してください、私はあなたのコードを少し変更しました、

<div id="mainbodycontentcont">
            <?php while ($row_rsFacilitator = mysql_fetch_assoc($rsFacilitator) { ?>
            <table width="520" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="150"><div id="mainbodypiccont">
                  <? echo "<img src=http://localhost/youngatart/facilitators/".$row_rsFacilitator['photo'] ." width='150'>" ?>
                </div></td>
                <td width="370"><div id="mainbodytextcont">
                  <div id="text1"><?php echo $row_rsFacilitator['name']; ?></div>
                </div></td>
              </tr>
              <tr>
                <td height="20" colspan="2"></td>
              </tr>
            </table>
              <?php }?>
          </div>

編集 私はあなたの質問を正確に理解していませんでしたが、画像からデータを編集したい場合は、画像に<a>タグを付けるだけです。

<div id="mainbodycontentcont">
                <?php while ($row_rsFacilitator = mysql_fetch_assoc($rsFacilitator)) { ?>
                <table width="520" border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td width="150"><div id="mainbodypiccont">
                      <? echo "<a href='yourfilename.php?imageid=1'><img src=http://localhost/youngatart/facilitators/".$row_rsFacilitator['photo'] ." width='150'></a>" ?>
                    </div></td>
                    <td width="370"><div id="mainbodytextcont">
                      <div id="text1"><a href='yourfilename.php?imageid=1'><?php echo $row_rsFacilitator['name']; ?></a></div>
                    </div></td>
                  </tr>
                  <tr>
                    <td height="20" colspan="2"></td>
                  </tr>
                </table>
                  <?php }?>
              </div>
于 2012-09-05T05:07:48.277 に答える
1

コードをよく見てください。最初にレコードを挿入してから、ファイルをアップロードしました。逆にしてみる。まずファイルをアップロードします。成功した場合は、画像名を変数に割り当ててから$pix、データベースに何かを挿入します。ファイルがディレクトリに正常にアップロードされているかどうかを確認します。このファイルの名前と、データベースに挿入されたばかりのファイルの名前を一致させてみてください。

また、少し注意:

  • 非推奨mysql_の関数の使用を避け、mysqli_または PDO を使用してください。
  • パラメータ化されたクエリを使用します。
于 2012-09-05T04:55:05.640 に答える