zlatkovic
Новичок
Ребят, я уже весь гугл перелопатил, все форумы просмотрел, все попробовал, но ничего не получается.
Привожу код:
Форма:
Обработчик:
Писал с подсказками (т.к. код не давали), некоторое с помощью книги.
Суть в том, что в ячейку screens записывается последний элемент массива вида:
Плюс ко всему выдает ошибку:
Но если:
То выводится строка вида:
И ошибка:
Либо добавляет последнее значение, либо не добавляет ничего. Я уже не помню что и при каких условиях происходило.
Привожу код:
Форма:
PHP:
<?php
echo <<<_END
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Добавить продукт</title>
<link rel='stylesheet' href='layouts/css/reset.css'>
<link rel='stylesheet' href='layouts/css/admin-style.css'>
</head>
<body>
<div class='admin-center'>
<form action='addproduct.php' method='POST' enctype='multipart/form-data'>
Категория: <input type='text' name='category' size='30' class='addproduct'><br>
Название: <input type='text' name='title' size='30' class='addproduct'><br>
Описание: <textarea name='descr' class='addproduct' rows=5></textarea><br>
Дата: <input type='text' name='date' size='30' class='addproduct'><br>
Скрин: <input type='file' name='screen[]' class='addproduct'><br>
Скрин: <input type='file' name='screen[]' class='addproduct'><br>
Скрин: <input type='file' name='screen[]' class='addproduct'><br>
Скрин: <input type='file' name='screen[]' class='addproduct'><br>
<input type='submit' name='doUpload' value='Отправить' class='addproduct-btn'>
</form>
</div>
</body>
</html>
_END;
?>
PHP:
<?php
require_once 'login.php';
if (isset($_POST['category']) &&
isset($_POST['title']) &&
isset($_POST['descr']) &&
isset($_POST['date']))
{
$category = $_POST['category'];
$title = $_POST['title'];
$descr = $_POST['descr'];
$date = $_POST['date'];
}
if ((empty($category)) ||
(empty($title)) ||
(empty($descr)) ||
(empty($date)))
{
echo "<script language=javascript>alert('Заполните все поля');</script>";
echo "<script>history.go(-1)</script>";
exit;
}
$imgDir = "../portfolio/img";
@mkdir($imgDir, 0777);
if (isset($_FILES))
{
$screen = $_FILES['screen'];
foreach($screen['name'] as $i => $file)
{
switch($screen['type'][$i])
{
case 'image/pjpeg':
case 'image/jpeg': $type = 'jpg'; break;
case 'image/png': $type = 'png'; break;
case 'image/gif': $type = 'gif'; break;
case 'image/tiff': $type = 'tif'; break;
default: $type = ''; break;
}
$tmpname = $screen['tmp_name'][$i];
$path = "$imgDir/".time()."-[$i].".$type;
move_uploaded_file($tmpname, $path);
$array = array($path);
$serialize = serialize($array);
}
}
$connect = mysql_connect($db_hostname, $db_username, $db_password) or die("Ошибка соединения с сервером");
mysql_select_db($db_database, $connect) or die ("База данных не выбрана");
mysql_query ("CREATE DATABASE IF NOT EXISTS $db_database") or die ("Ошибка соединения с БД");
mysql_query ("CREATE TABLE IF NOT EXISTS portfolio (
id INT NOT NULL AUTO_INCREMENT,
category VARCHAR(160),
title VARCHAR(160),
descr TEXT,
date VARCHAR(160),
screens TEXT,
PRIMARY KEY (id)
)") or die (mysql_error());
mysql_query ("INSERT INTO portfolio (category, title, descr, date, screens)
VALUES ($category, $title, $descr, $date, $serialize)") or die (mysql_error());
mysql_close ($connect);
exit;
?>
Суть в том, что в ячейку screens записывается последний элемент массива вида:
PHP:
a:1:{i:0;s:32:"../portfolio/img/1359715142-[3].";}
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':1:{i:0;s:35:"../portfolio/img/1359757478-[3].jpg";})' at line 2
PHP:
echo $serialize;
PHP:
a:1:{i:0;s:35:"../portfolio/img/1359703327-[0].jpg";}
a:1:{i:0;s:35:"../portfolio/img/1359703327-[1].png";}
a:1:{i:0;s:35:"../portfolio/img/1359703327-[2].jpg";}
a:1:{i:0;s:35:"../portfolio/img/1359703327-[3].jpg";}
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':1:{i:0;s:35:"../portfolio/img/1359757478-[3].jpg";})' at line 2