您的位置:首页 > 编程语言 > PHP开发

用PHP写的图片标注的小工具

2016-10-29 22:24 134 查看

用PHP写的图片标注的小工具

最近需要做对图片进行进行标注审核的工作,为了方便展示图片并记录图片的标注结果,决定基于PHP和Mysql做一个简单的图片标注的页面。

在工作开始之前,需要先在自己的机器上搭建一个Apache+PHP+Mysql的开发环境,在网上有许多安装教程可以参考。

不过,如果想更加简便快捷的使用PHP/Mysql,在Windows下可以安装wamp5,MAC下可以安装Mamp,这两个软件已经集成了Apache+PHP+Mysql,安装很方便。

下面是整理的代码,主要功能如下:

从数据库读取图片信息

在一个页面显示多张图片

每次提交只影响一张图片的标注结果

显示每张图片的标注状态

可以随时更新图片的标注结果

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<?php
date_default_timezone_set('PRC');
// connect mysql db
$mysql_server_name="localhost"; //数据库服务器名称
$mysql_username="root"; // 连接数据库用户名
$mysql_password="root"; // 连接数据库密码
$mysql_dbname = "mydbname";
$conn = new mysqli($mysql_server_name, $mysql_username, $mysql_password, $mysql_dbname);
// check connect
if ($conn->connect_error) {
die("Fail to connect db: " . $conn->connect_error);
}

$insert_time = '2016-01-10 10:01:01';
// get max and min id
$query = "SELECT MAX(ID) AS max_id, MIN(ID) AS min_id
FROM pic_table WHERE InsertTime = '{$insert_time}'";
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$max_id = $row["max_id"];
$min_id = $row["min_id"];
echo "<br> max_id : ". $max_id. " - min_id : ".$min_id; echo '<br>';
}
} else {
die("Get no result from db");
}

// get total image num
$get_toatal_img_num_sql = "SELECT COUNT(*) AS total_num FROM pic_table
WHERE ShopID > 0 AND InsertTime = '{$insert_time}'";
$total_num_result = $conn->query($get_toatal_img_num_sql);
if ($total_num_result->num_rows > 0) {
while($row = $total_num_result->fetch_assoc()) {
$max_pic_num = $row["total_num"];
}
} else {
die("No picture !");
}

// dispay pictures
// max display num on each page
$max_display_num = 10;
// get current page num
$page = $_GET['page'];
echo "page : ".$page, '<br>';
// show pic in table
echo '<form action="" method="post"> <table border="2">';
// table head
echo '<tr> <td>序号</td><td>商户ID</td><td>图片ID</td>
<td align="center" >图片URL</td><td align="center">选项</td><td>审核状态</td>
</tr>';

// for each page
for ($i = $page * $max_display_num; $i < (($page + 1) * $max_display_num) && $i < $max_pic_num; ++$i) {
$j = $i + 1;
// sub query sql
$cur_id = $min_id + $i;
$sub_query_sql = "SELECT ShopID, PictureID, PictureURL, Quality FROM pic_table
WHERE InsertTime = '{$insert_time}' AND ID = {$cur_id}";
echo $sub_query_sql, '<br>';
$result = $conn->query($sub_query_sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$shop_id = $row["ShopID"];
$pic_id = $row["PictureID"];
$pic_url = $row["PictureURL"];
$quality = $row["Quality"];
echo "<br> id: ".$shop_id." pic : ".$pic_id. " url ".$pic_url. " qua ".$quality;
}
} else {
echo "Get no result from db !";
continue;
}

if ($quality != -10) {
$audit_status = "已审核";
} else {
$audit_status = "未审核";
}

echo '<tr> <td>'.$j.'</td> <td>'.$shop_id.'</td> <td>'.$pic_id.'</td>
<td>
<img  border= 0 src='.$pic_url.' width="120" height="90" >
</td>
<td>
<input type="radio" name="quality" value="20_'.$shop_id."_".$pic_id.'"> 好
<input type="radio" name="quality" value="10_'.$shop_id."_".$pic_id.'"> 中
<input type="radio" name="quality" value="5_'.$shop_id."_".$pic_id.'"> 差<br>
<br>        <input type="submit">
</td>
<td>'.$audit_status.'</td>
</tr>';
}

echo '<tr><td<input type="submit"><br><br></form>';
echo '</table>';

// write db
// get post info
$pic_quality = $_POST['quality'];
$pic_audit_info_arry = explode("_",$pic_quality);
$num = count($pic_audit_info_arry);
$cur_pic_quality = $pic_audit_info_arry[0];
$cur_shop_id = $pic_audit_info_arry[1];
$cur_pic_id = $pic_audit_info_arry[2];
$update_sql = "UPDATE pic_table SET Quality = {$cur_pic_quality}
WHERE InsertTime = '{$insert_time}' AND ShopID = {$cur_shop_id} AND PictureID = {$cur_pic_id}";
$conn->query($update_sql);
$conn->close();

echo '<br><br>';
$Previous_page=$page-1;
$next_page=$page+1;
if ($Previous_page<0){
echo "上页";
echo "<a href=?page=$next_page> 下页 </a>";
} else if ($page<=$max_pic_num/$max_display_num) {
echo "<a href=?page=$Previous_page> 上页 </a>";
echo "<a href=?page=$next_page> 下页 </a>";}
else{
echo "图片已审核完毕!"; echo '<br><br>';
echo " <a href=?page=$Previous_page>上页</a>";
echo "下页";
}
echo '<br><br><br>';
echo " ", Date("Y-m-d H:i:s");
?>

</body>
</html>


这个小工具功能比较简单,不能一次写入多张图片的标注内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php mysql 图片