Ну вот крч
. Делай точно так как у меня и все будет работать.
БАЗА ДАННЫХ
Логин root
Пароль 123456
Хост localhost
Порт 3306
Имя: my_data
Настраивается в data.php
Таблица 1
Имя: images
Поля
id int autoincrement
url varchar 255
post_id int
Таблица 2
Имя: posts
Поля
id int autoincrement
title varchar 50
description text
ФАЙЛ posts.php<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{
background: #333333;
}
.post{
color:aliceblue;
width:60%;
margin: auto;
border: 5px solid #FFF;
margin-top:25px;
}
.post .title{
font-size:1.4em;
padding: 15px;
background:#660099;
}
.post .description{
padding: 15px;
background:#330099;
}
.post .images img{
border-radius: 20px;
margin: 20px auto;
width: 50%;
display: block;
}
.post .images{
padding: 15px;
max-height: 500px;
overflow: overlay;
background:#660099;
}
</style>
</head>
<body>
<?PHP
require_once "data.php";
$con = sql_connect();
$sql = "SELECT id,title,description FROM posts LIMIT 20";
$res = $con->query($sql);
$bar = "";
while($row = $res->fetch_assoc()){
$bar .= "<div class='post' data-postid={$row["id"]}'>
<div class='title'>{$row["title"]}</div>
<div class='description'>{$row["description"]}</div>
<div class='images'>";
$sql = "SELECT url FROM images WHERE post_id=$row[id]";
$imgs = $con->query($sql);
while($img = $imgs->fetch_row())
$bar .= "<img src=\"$img[0]\">";
$bar .= "
</div>
</div>";
}
echo $bar;
?>
</body>
</html>
ФАЙЛ data.php <?PHP
define("DB_LOGIN","root");
define("DB_PASS","123456");
define("DB_HOST","localhost");
define("DB_NAME","my_data");
define("DB_PORT","3306");
function sql_connect(){
$con = new mysqli(DB_HOST, DB_LOGIN, DB_PASS, DB_NAME,DB_PORT);
if ($con->connect_errno) {
echo "Нет доступа к БД! Ошибка: " . $con->connect_error;
return false;
}
return $con;
}
?>
ФАЙЛ index.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<script>
document.addEventListener("DOMContentLoaded",function(){
document.all.addFoto.addEventListener("click",function(){
var el = document.createElement("input");
el.name = "foto[]";
el.type = "file";
el.accept="image/*";
document.all.addBtn.appendChild(el)
});
});
</script>
<style>
label,input{
display:block;
margin-top:10px;
}
</style>
<body>
<form action="addScript.php" method="post" enctype="multipart/form-data">
<label >Заголовок<input type="text" name="title"></label>
<label >Описание<input type="text" name="description"></label>
<input type="button" id="addFoto" value="Добавить фото">
<div id="addBtn"></div>
<input type="submit" value="Отправить" />
</form>
</body>
</html>
ФАЙЛ addScript.php<?PHP
require_once "data.php";
$arr = [];
if(isset($_FILES["foto"])){
$dir = "upload/images";
if(!is_dir($dir))
mkdir($dir,0777,true);
for($i = 0; $i < count($_FILES["foto"]["name"]);$i++){
if($_FILES["foto"]["error"][$i] == 0 && preg_match("/^image/",$_FILES["foto"]["type"][$i])){
array_push($arr,$dir."/".time()."_".preg_replace("/[а-яА-Я\s]/i", '', $_FILES["foto"]["name"][$i]));
move_uploaded_file($_FILES["foto"]["tmp_name"][$i],end($arr));
}
}
}
$title = trim(htmlspecialchars($_POST["title"]));
$description = trim(htmlspecialchars($_POST["description"]));
if($title && $description && $con = sql_connect()){
$sql = "INSERT INTO posts(title,description) VALUES('$title','$description')";
$con->query($sql);
$sql = "SELECT MAX(id) FROM posts";
$res = $con->query($sql);
$row = $res->fetch_row();
for($i = 0; $i < count($arr);$i++){
$sql = "INSERT INTO images(url,post_id) VALUES('$arr[$i]','$row[0]')";
$con->query($sql);
}
}
else
echo "Error: no data!";
$con->close();
?>