Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 标记列表数据库_Php_Database_Upload_Tags - Fatal编程技术网

Php 标记列表数据库

Php 标记列表数据库,php,database,upload,tags,Php,Database,Upload,Tags,我试图设置一个表单,允许用户将图像上传到服务器上的文件夹中,并将带有该图像的标记上传到数据库中,这样就可以在标记中搜索图像,并且任何选定的图像都将显示连接到该图像的标记列表。 我试图做一个标签系统,就像stackoverflow一样,只使用图像而不是文本。 这就是我到目前为止所做的: <form action="insert.php" method="post"> <p> <label for="file">Filename:</label> &l

我试图设置一个表单,允许用户将图像上传到服务器上的文件夹中,并将带有该图像的标记上传到数据库中,这样就可以在标记中搜索图像,并且任何选定的图像都将显示连接到该图像的标记列表。 我试图做一个标签系统,就像stackoverflow一样,只使用图像而不是文本。 这就是我到目前为止所做的:

<form action="insert.php" method="post">
<p>
<label for="file">Filename:</label>
<input type="file" name="imageName" id="imageName">
<br />
<label for="tags">Tags</label>
<textarea name="tags" id="tags" cols="45" rows="5"></textarea>
<input type="hidden" name="member" id="member" />
<br />
<input type="submit">
</p>
</form>


文件名:

标签

这是表单,这是php

<?php
$con = mysql_connect("localhost");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("images", $con);

$sql="INSERT INTO images (imageName, tags, member)
VALUES
('$_POST[imageName]','$_POST[tags]','$_POST[member]')";

if (!mysql_query($sql,$con))
 {
 die('Error: ' . mysql_error());
 }
echo "1 record added";

mysql_close($con);

     $allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 200000000000000000000000)
&& in_array($extension, $allowedExts))
 {
  if ($_FILES["file"]["error"] > 0)
   {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
   else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
     else
     {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
     }
    }
else
   {
   echo "Invalid file";
  }

  ?>

您可以通过不同的方式完成:

使用简单HTML下拉列表(带有允许多选选项)


tag1
在这里,您需要从数据库加载所有标记

或 在HTML中使用

,您没有输入
属性,该属性将包含上载图像/标记的成员的名称

因此,将其更改为:

另外,在PHP中,
$\u POST[imageName]
将不包含上载图像的名称。在PHP-
$\u文件中有单独的超全局数组

因此,图像名称将位于
$\u文件['imageName']['name']

另外,您只是将图像名称放入数据库中,而不是将图像存储在任何位置

下面是存储图像的代码

$folder = 'NAME_OF_THE_FOLDER_WHERE_YOU_WANT_TO_SAVE_IMAGES';
if( is_uploaded_file( $_FILES['imageName']['tmp_name'] ) ) {
    move_uploaded_file( $_FILES['imageName']['tmp_name'], "$folder/" . $_FILES['imageName']['name'] );
}
就在上传图像时向用户显示已经可用的标记而言,您可以通过检查用户输入的标记是否已经存在于数据库中,如果已经存在,则显示它们…并避免在数据库中重复插入它们来调整是否

这是一个开始,你可以改进它


希望能有所帮助。

很抱歉,我有工作,我忘了将其包含在此页面上,因为我只是测试代码以存储标记,然后才将其添加到主页。我遇到的问题是数据库中的标签,以及如何检索它们进行搜索,作为图片页面上的列表,感谢自动完成正是我试图做的,我假设我可以使用一个变量从数据库中搜索标签来自动更新列表。很简单,只需自己尝试,尝试使用jquery ui,如果您面临任何问题,请更新此帖子。。。
$folder = 'NAME_OF_THE_FOLDER_WHERE_YOU_WANT_TO_SAVE_IMAGES';
if( is_uploaded_file( $_FILES['imageName']['tmp_name'] ) ) {
    move_uploaded_file( $_FILES['imageName']['tmp_name'], "$folder/" . $_FILES['imageName']['name'] );
}