想要在不同的页面上存储和检索MySQL中的数据

时间:2015-06-11 06:23:57

标签: php mysql database database-design

我正在处理一个项目,很长一段时间该项目处于中间位置。问题是:存储和检索MySQL数据库中的内容(本地在WAMP服务器中)。

关于项目的简要概述,其中包括以下步骤:

1)用户可以创建帐户, 2)上传文件(可以是文本(.rtf& .txt),图像(.jpg& .png),文档(.doc,.xls,.pptx,.pdf)和视频(.avi& .mp4)) 3)查看这些文件和 4)修改它们。

所以概念是:

1)用户登录或注册, 2)他可以选择以下选项:文本,图像,文档&影片。 3)用户选择任何选项:打开一个新页面,用户可以在缩略图视图中查看他/她现有的内容及其名称和 4)在“添加新内容”的所有内容之上都有一个选项。这里我们有两个条件:

  1. 如果用户点击现有,用户可以查看并删除现有文件。例如,如果是视频,用户可以通过点击缩略图来播放。
  2. 如果用户点击“添加新内容”,则会将用户带到另一个用户可以上传相应内容的页面。
  3. 所以,问题是我的团队中没有人(我们在大学,而不是在公司)知道将查询存储到数据库中的查询。上传后,检索文件的名称和缩略图(仅限图像&视频,否则为默认缩略图)在上一页

    我的一位团队成员试图这样做,但上传的文件显示在每个用户的帐户中。

    所以我想知道我们该怎么做。我的意思是说,两个问题的具体编程代码。

    P.S。:如果可能的话请告诉我如何设置文件选择的限制(验证)(比如在上传FB封面时,它只显示图像而不是所有文件)。

3 个答案:

答案 0 :(得分:0)

这应该对你有所帮助。但请务必从 sql injections 中清除此代码。

//This is the directory where images will be saved
$target = "pics/";
$target = $target . basename( $_FILES['Filename']['name']);

//This gets all the other information from the form
$Filename=basename( $_FILES['Filename']['name']);
$Description=$_POST['Description'];


//Writes the Filename to the server
if(move_uploaded_file($_FILES['Filename']['tmp_name'], $target)) {
    //Tells you if its all ok
    echo "The file ". basename( $_FILES['Filename']['name']). " has been uploaded, and your information has been added to the directory";
    // Connects to your Database
    mysql_connect("localhost", "root", "") or die(mysql_error()) ;
    mysql_select_db("yourdbname") or die(mysql_error()) ;

    //Writes the information to the database
    mysql_query("INSERT INTO tbl_files (Filename,Description)
    VALUES ('$Filename', '$Description')") ;
} else {
    //Gives and error if its not
    echo "Sorry, there was a problem uploading your file.";
}

答案 1 :(得分:0)

// Connect to your Database
    mysql_connect("localhost", "root", "") or die(mysql_error()) ;
    mysql_select_db("dbname") or die(mysql_error()) ;

// directory where images will be moved
$file=mktime()."_".$_FILES['files']['name'];
$target = "images/" . $file;

//This gets all the other information from the form
$description=$_POST['Description'];

//Writes the Filename to the server
if(move_uploaded_file($_FILES['files']['tmp_name'], $target)) {
    //Tells you if its all ok
    echo "The file has been uploaded, and your information has been added to the directory";


    //Writes the information to the database
    mysql_query("INSERT INTO tbl_files (Filename,Description)
    VALUES ('$file', '$description')") ;
} else {
    //Gives and error if its not
    echo "Sorry, there was a problem uploading the file.";
}

答案 2 :(得分:0)

你的问题太宽泛了。这里有一些提示。在尝试完成后,回过头来提出更具体的问题。

"用户"管理是一项非常重要的任务。您需要管理页面来创建新用户,删除用户等.A"最终用户" 应该是MySQL"用户&#34 ;;应该只有一个或两个MySQL用户(" app-user")。 PHP代码将验证一个"最终用户",使用您自己的表来存储他们的名字,密码等.PHP代码将以app-user身份连接到mysql。

媒体文件应作为文件存储在磁盘上。这样可以轻松使用HTML代码显示图像(<img...>)或播放视频。

缩略图 - 简单的答案是像对待其他媒体一样对待它们。 (在一个项目中,我将它们存储在数据库中,并将它们笨拙地转换为base64以包含在<img...>中。)

缩略图 - 可能是&#34; exif数据&#34;中的缩略图。但我不相信它存在。相反,我会在PHP中使用image*例程来从图像创建缩略图。 (我不知道如何处理视频的缩略图。)

PHP具有上传媒体的功能。它有点笨拙和扭曲;学习手册。

PHP对于访问文件系统很挑剔(出于安全原因)。您需要戳洞(请参阅open_basedir)以允许访问。

您需要将信息从一个页面传递到另一个页面。请记住,HTML页面是&#34;无状态&#34;,因此一个页面中的 nothing 将隐含地提供给下一个页面。您可能能够将所有内容放入网址(...?user=123&img=abc...)。但可能存在安全问题。或者你可能需要获得&#34; cookies&#34;参与。

&#34;用户点击...&#34; - 可能需要从OnClick=DoSomeFunction(...)开始的JavaScript。你可能需要AJAX,但听起来不像。

否则,HTML,PHP和MySQL可以处理您需要的一切。

这些笔记可能包含数千行PHP,包括几十个SQL查询。在你的团队之间分配项目,这样就不是每个人都必须精通各个方面。建议细分:用户管理;媒体处理;页面流(点击,传递args,安全性等);数据库抽象层。