2014-01-19 51 views
0

Im建立我自己的CMS。用户可以创建帖子,也可以上传带有当前帖子的图片。因此,当用户创建帖子并上传图片时,图片网址将被插入到数据库中,并存储到一个表中,用于存储所有图片网址。我的问题是,我不知道如何将上传的图像与当前帖子相关联,同时将帖子的数据插入到数据库中。将图像链接到右页

所以我的数据库存在一个邮政表,其中包含以下行名:id,主题,介绍,发布和image_id。 (当我有值时,image_id用于加入正确的image.id) 我的图像表仅存在于id和image_url之外。

因此,当用户发布消息并上传图片时,如何将数据插入到数据库中,以便将图片链接到帖子中?

谢谢!

+0

你需要每个图像的帖子ID。当你上传图片时,你需要传递一个帖子ID。 –

+0

是的,但我不明白如何获得尚未发布的内容的帖子ID。 – Marciano

+0

要有许多照片后通过尝试使用此结构: 图像(idIMG,idPOST,urlIMG,.....)其中图像的PK是(idIMG + idPOST) – phpCore

回答

1

你会先插入图像信息:

$image_query = "INSERT INTO images SET image_url = :image_url"; 
$image_result = $pdo->prepare($image_query); 
$image_result->execute(array(
    ":image_url" => $image_url 
)); 

然后得到从插件的image_id:

$image_id = $pdo->lastInsertId(); 

然后将POST:

$post_query = "INSERT INTO posts SET subject = :subject, intro = :intro, post = :post, image_id = :image_id"; 
$post_result = $pdo->prepare($post_query); 
$post_result->execute(array(
    ":subject" => $subject, 
    ":intro" => $intro, 
    ":post"  => $post, 
    ":image_id" => $image_id 
)); 

你必须根据您的情况修改上面的变量名称,并假定您使用的是PDO,其中$ pdo是连接到你的MySQL数据库。但这基本上是你需要的过程。

+0

非常感谢! – Marciano

0

首先你需要改变你的数据库张贴表。张贴表中不应该有图像ID。 你应该在你的图像表中发布ID。

图片属于帖子。帖子不属于图片。

Images 

-- image_id 
-- image_path 
-- post_id 

当有人上传图片,然后将图片保存在您的图片目录中,并在您的图片url中设置一个隐藏的输入字段。在图片网址隐藏字段中设置图片网址。当你提交表单时,你将有一个包含图像url的发布数据。然后将帖子数据保存在帖子表和图片网址中,并在图片表中添加帖子ID。

我知道它是描述性的答案,我试图来形容了。

应该意义!

0

我认为,你可以处理两种不同的方式:

一种是把图像领域上的表后,如果您需要在分离领域的形象。 所以这样你会在你的后场有些类似:

names: id, subject, intro, post, and a image_path

第二种方式是...我认为这是最流行的入CSM的,如果您不需要的图像在一个单独的领域,可能你可以把所有在一起,将其保存为HTML。

这两种可能性,我建议你考虑,这是没有必要必须把图像另一个表。如果你有那个必要,可能这不是你是什么样子的。