在 php 中动态添加或识别多个文本框或类似内容
adding or recognizing multiple textboxes or something like that in php dynamically
嗨
我是业余爱好者 php 并制作了一个网站,我正在上传图像,将其存储在数据库中(使用自动增量变量)并按降序显示在页面上所以它可能在顶部看起来是最新的,在它下面看起来是最新的,我需要添加一个文本框用于评论和用户名(因为我没有创建登录页面,因为我不会在某个地方托管它)
我知道如何将它添加到上传图片部分,因为只有 1 张图片会被上传
问题是怎么显示,我用过
while ($image = mysqli_fetch_assoc($sql))
{
echo image code....
}
现在我在 div 中显示图像,我将包含 2 个文本框,并且在 while 循环后每次都相应地显示来自 dB 的值,但是当我想编辑时上传超过 1 张图片后的文本框,如何知道正在编辑哪个文本框,因为每个文本框都有相同的文本框名称
我应该比较图像内容吗?因为图像本身是以二进制格式存储的?
但我想这会是一个缓慢的过程
请提出一些想法或方法来做到这一点
基本上它就像 instagram(但非常基本)....
首先创建图像table:
图片 table
image_id | url
然后为图片评论创建单独的table:
images_comments table
comment_id | image_id |用户 |文字 |日期
其中:
comment_id: integer , Auto Increment
image_id: integer referring to id in images table
user: should be user id referring to separate users table, but because you do not have login system you can store user name here as varchar.
text: varchar
date: datetime
显示图片+评论:
$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);
}
嗨
我是业余爱好者 php 并制作了一个网站,我正在上传图像,将其存储在数据库中(使用自动增量变量)并按降序显示在页面上所以它可能在顶部看起来是最新的,在它下面看起来是最新的,我需要添加一个文本框用于评论和用户名(因为我没有创建登录页面,因为我不会在某个地方托管它)
我知道如何将它添加到上传图片部分,因为只有 1 张图片会被上传
问题是怎么显示,我用过
while ($image = mysqli_fetch_assoc($sql))
{
echo image code....
}
现在我在 div 中显示图像,我将包含 2 个文本框,并且在 while 循环后每次都相应地显示来自 dB 的值,但是当我想编辑时上传超过 1 张图片后的文本框,如何知道正在编辑哪个文本框,因为每个文本框都有相同的文本框名称
我应该比较图像内容吗?因为图像本身是以二进制格式存储的?
但我想这会是一个缓慢的过程
请提出一些想法或方法来做到这一点
基本上它就像 instagram(但非常基本)....
首先创建图像table:
图片 table
image_id | url
然后为图片评论创建单独的table:
images_comments table
comment_id | image_id |用户 |文字 |日期
其中:
comment_id: integer , Auto Increment
image_id: integer referring to id in images table
user: should be user id referring to separate users table, but because you do not have login system you can store user name here as varchar.
text: varchar
date: datetime
显示图片+评论:
$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);
}