【发布时间】:2015-03-25 21:23:15
【问题描述】:
我有两个来自 mysql 数据库的表,其架构如下:
专辑:标题、创建日期、修改日期、专辑 ID(主键) 照片:标题、image_url、date_taken、imageID(主键)
我正在创建一个 php/mysql 驱动的在线相册,并且我希望允许一张照片在多个相册中,所以我没有将相册 ID 作为外键放在照片中。 我能做到这一点的唯一方法是创建第三个表,将 imageID 与albumID 相关联,但到目前为止我还没有做到这一点。 我应该在我的第三张表上放什么,将 imageID 与 albumID 关联起来,并允许用户将一张照片放在多个相册中。
另外,我将如何在我的 php 代码中将它查询到 mysql 数据库以显示特定相册中的所有照片? (我正在使用 mysqli 函数) 任何帮助将不胜感激! 提前致谢
到目前为止的代码:
<form enctype="multipart/form-data" method="post">
<?php
require_once 'config.php';
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(isset($_POST['upload'])){
$caption = $_POST['caption'];
$albumID = $_POST['album'];
$file = $_FILES ['file']['name'];
$file_type = $_FILES ['file']['type'];
$file_size = $_FILES ['file']['size'];
$file_tmp = $_FILES ['file']['tmp_name'];
$random_name = rand();
if(empty($file)){
echo "Please enter a file <br>";
} else{
move_uploaded_file($file_tmp, 'uploads/'.$random_name.'.jpg');
$ret = mysqli_prepare($mysqli, "INSERT INTO photos (caption, image_url, date_taken, imageID)
VALUES(?, ?, NOW()), null");
$filename = "uploads/" . $random_name . ".jpg";
mysqli_stmt_bind_param($ret, "ss", $caption, $filename);
mysqli_stmt_execute($ret);
echo "Photo successfully uploaded!<br>";
$id = mysqli_prepare($mysqli, "INSERT into album_photo (albumID, imageID) values (?, $id)");
}
}
?>
Caption: <br>
<input type="text" name="caption">
<br><br>
Select Album: <br>
<select name="album">
<?php
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$result = $mysqli->query("SELECT * FROM albums");
while ($row = $result->fetch_assoc()) {
$albumID = $row['albumID'];
$title = $row['title'];
echo "<option value='$albumID'>$title</option>";
}
?>
</select>
<br><br>
Select Photo: <br>
<input type="file" name="file">
<br><br>
<input type="submit" name="upload" value="Upload">
</form>
【问题讨论】:
-
到目前为止你尝试了什么?
标签: php mysql image phpmyadmin