在动态中添加或识别多个文本框或类似的东西

时间:2016-04-05 20:09:36

标签: php mysqli textbox web data-retrieval

嗨我是php的业余爱好者,我正在制作一个网站,我正在上传一张图片,将其存储在数据库中(带有一个自动增量变量),然后按降序显示在页面上,这样看起来可能是最新的在它下面的顶部和后面,我需要添加一个用于评论和用户名的文本框(因为我没有登录页面,因为我不会在某处托管它)
我知道如何将其添加到上传图片的部分,因为只有1张图片会上传 问题是如何显示它,我用过

while ($image = mysqli_fetch_assoc($sql))
{
echo image code....
}


现在我在显示图像的div中我将合并2个文本框和evertime while while循环显示来自dB的值相应但是当我想在上传后编辑文本框时1图像,如何知道正在编辑哪个文本框,因为每个文本框都有相同的文本框名称 我应该比较图像内容吗?因为图像自身以二进制格式存储?
但是我认为这是一个缓慢的过程 PLZ建议som的想法或方法这样做基本上它像instagram(但非常基本)....

1 个答案:

答案 0 :(得分:0)

首先创建图像表:

图片

image_id | URL

然后creare单独表格的图像评论:

images_comments

comment_id | image_id |用户|文字|日期

其中:

  

comment_id:整数,自动增量
   image_id:整数,指的是图像表中的id    user:应该是指向单独用户表的用户ID,但由于您没有登录系统,因此您可以将用户名存储为varchar。
   text: varchar
  日期:日期时间

显示图片+评论

$sql = "SELECT * FROM images";

while ($image = mysqli_fetch_assoc($sql))
{
   $imageUrl = $image["url"];
   $imageID = $image["image_id"];

   //Show image:
   echo "<img src='$imageUrl ' />";

   //Get comments:
   $sql2 = "SELECT * FROM images_comments WHERE image_id=$imageID";
   while ($comment = mysqli_fetch_assoc($sql2))
   {
      $text = $comment["text"];
      $userName = $comment["user"];
      $date = $comment["date"];       
      //show username and comment date
      echo $userName . " " .$date . "<br>";
      //Show comment text:
      echo $text; 
   }
}


向图片添加评论
如果你想在每个图像下面都有一个评论表格,那么在我们之前使用的While循环中添加以下代码:

while ($image = mysqli_fetch_assoc($sql))
{
    .......... previous code goes here .........

    //in the form we store imageID in hidden input field
    //so that we can know to which image the form belongs
    echo "<form method='post' action='page.php'>
             <input type='text' name='username'/>
             <textarea name='commentText'></textarea>
             <input type='hidden' name='imageID' value='$imageID'/>
             <input type='submit' name='submitComment' value='Submit'>
          </form>";

}


然后在page.php

if(isset($_POST["submitComment"]))
{
    $username = $_POST["username"];
    $text = $_POST["commentText"];
    $imageID = $_POST["imageID"];
    $date = date("Y-m-d H:i:s");

    $sql = "INSERT INTO images_comments (image_id,user,text,date) VALUES
            ($imageID,$username,$text,$date)";
    mysqli_query($con,$sql);
}