@freeman0204

Ошибка при загрузке нескольких файлов на сервер, как исправить?

Есть форма, в ней 2 поля, название и адрес, и кнопка для загрузки файлов(картинок) на сервер. Идея в том что бы сама картинка попадала в папку upload, а ссылка на картинку в поле url_img.
Картинка таблицы. prntscr.com/d6rqmd и prntscr.com/d6rqur.
Скрипт который в foreach я нашел, но сама его работа мне принципе ясна, но сделать этот скрипт работающим пока не выходит.

Вот мой код:

<form enctype="multipart/form-data"  action="" method="post">

  <label>Название</label>
  <input type="text" name="title" value="">

  <label>Адресс</label>
  <input type="text" name="address" >

  <label>Загрузить фоновую фотографию</label>
  <input type="file" name="pictures[]" >

  <input type="submit" name="upload" value="Сохранить">
</form>


if($_POST['upload']) {
  $url_img = $_POST['url_img'];
  $title = $_POST['title'];
  $address = $_POST['address'];

  if($title || $address !== "") {
    $add = mysql_query("INSERT INTO stores VALUES ('', '$title', '$address')") or die(mysql_error());
    header("Location: /admin/admin.php?page=all_stores");
  }

  foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        $name = $_FILES["pictures"]["name"][$key];
        $kod=uniqid();
        move_uploaded_file($tmp_name, "../upload".$kod.$name);

        $imgmedia="../upload".$kod.$name;

        $queryup = "UPDATE stores SET $url_img = '{$imgmedia}'";
        $result = mysql_query($queryup);
        }
      }
}


Сам код для загрузки файлов находится в foreach. Сейчас у меня выдает ошибку,
Column count doesn't match value count at row 1.
Подскажите что в этом скрипте не так? Может как то сменить структуру кода или с полями что то не так?
Почему здесь эта переменная {$imgmedia} в фигурных скобках?
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 2
@lubezniy
Ну так количество полей в stores 4, а Вы пишете 2 без указания конкретных полей. Естественно, идёт ошибка.
Ответ написан
В INSERT не совпадает количество полей в таблице и в запросе. Вам следует написать так:
INSERT INTO `stores` (`title`, `address`) VALUES ('$title', '$address');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы