@artempershin33

Почему при добавлении в одну таблицу, информация добавляется в обе?

Есть две таблицы в бд , когда добавляю на странице товар , он добавляется и в первую и во вторую таблицу , как исправить чтобы добавлялся только во 2 ?
Вот код добавления товара из бд
<?php
require('top.inc.php');
?>
<!doctype html>
<html lang="ru">
<head>
  <title>Админ-панель</title>
</head>
<body>

  <?php
    $host = 'localhost';  // Хост, у нас все локально
    $user = '';    // Имя созданного вами пользователя
    $pass = ''; // Установленный вами пароль пользователю
    $db_name = '';   // Имя базы данных
    $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
    if(isset($_SESSION['ADMIN_LOGIN']) && $_SESSION['ADMIN_LOGIN']!=''){

}else{
   header('location:login.php');
   die();
}
    // Ругаемся, если соединение установить не удалось
    if (!$link) {
      echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
      exit;
    }

    //Если переменная Name передана
    if (isset($_POST["title"])) {
      //Если это запрос на обновление, то обновляем
      if (isset($_GET['red'])) {
        $sql = mysqli_query($link, "UPDATE `product` SET `title` = '{$_POST['title']}',`price` = '{$_POST['price']}',`image` = '{$_POST['image']}' WHERE `ID`={$_GET['red']}");
      } else {
        //Иначе вставляем данные, подставляя их в запрос
        $sql = mysqli_query($link, "INSERT INTO `product` (`title`, `image`, `price` ) VALUES ('{$_POST['title']}','{$_POST['image']}', '{$_POST['price']}')");
      }

      //Если вставка прошла успешно
      if ($sql) {
        echo '<p>Успешно!</p>';
      } else {
        echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
      }
    }

    //Удаляем, если что
    if (isset($_GET['del'])) {
      $sql = mysqli_query($link, "DELETE FROM `product` WHERE `id` = {$_GET['del']}");
      if ($sql) {
        echo "<p>Товар удален.</p>";
      } else {
        echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
      }
    }

    if (isset($_GET['red'])) {
      $sql = mysqli_query($link, "SELECT `id`, `image`, `title`, `price` FROM `product` WHERE `ID`={$_GET['red']}");
      $product = mysqli_fetch_array($sql);
    }
  ?>

  <form action="" method="post">
    <table>
      <tr>
        <td>Наименование:</td>
        <td><input type="text" name="title" value="<?= isset($_GET['red']) ? $product['title'] : ''; ?>"></td>
      </tr>
      <tr>
        <td>Цена:</td>
        <td><input type="text" name="price" size="3" value="<?= isset($_GET['red']) ? $product['price'] : ''; ?>"> руб.</td>
      </tr>
      <tr>
        <td>Путь к картинке:</td>
        <td><input type="text" name="image" size="3" value="<?= isset($_GET['red']) ? $product['image'] : ''; ?>"></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" value="Добавить товар"></td>
      </tr>
    </table>
  </form>
  <?php
  //Получаем данные
 $sql = mysqli_query($link, 'SELECT `id`, `title`, `price`, `image` FROM `product`');
  while ($result = mysqli_fetch_array($sql)) {
    echo "<p>{$result['id']}) {$result['title']} {$result['image']} - {$result['price']} ₽ - <a href='?del={$result['id']}'>Удалить</a> - <a href='?red={$result['id']}'>Редактировать</a></p>";
  }
  ?>
  </body>
</html>
<?php
    if (isset($_POST["title"])) {
      //Если это запрос на обновление, то обновляем
      if (isset($_GET['red'])) {
        $sql = mysqli_query($link, "UPDATE `akcii` SET `title` = '{$_POST['title']}',`price` = '{$_POST['price']}',`image` = '{$_POST['image']}' WHERE `ID`={$_GET['red']}");
      } else {
        //Иначе вставляем данные, подставляя их в запрос
        $sql = mysqli_query($link, "INSERT INTO `akcii` (`title`, `image`, `price` ) VALUES ('{$_POST['title']}','{$_POST['image']}', '{$_POST['price']}')");
      }

      //Если вставка прошла успешно
      if ($sql) {
        echo '<p>Успешно!</p>';
      } else {
        echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
      }
    }

    //Удаляем, если что
    if (isset($_GET['del'])) {
      $sql = mysqli_query($link, "DELETE FROM `akcii` WHERE `id` = {$_GET['del']}");
      if ($sql) {
        echo "<p>Товар удален.</p>";
      } else {
        echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
      }
    }

    if (isset($_GET['red'])) {
      $sql = mysqli_query($link, "SELECT `id`, `image`, `title`, `price` FROM `akcii` WHERE `ID`={$_GET['red']}");
      $akcii = mysqli_fetch_array($sql);
    }
  ?>

  <form action="" method="post">
    <table>
      <tr>
        <td>Наименование:</td>
        <td><input type="text" name="title" value="<?= isset($_GET['red']) ? $akcii['title'] : ''; ?>"></td>
      </tr>
      <tr>
        <td>Цена:</td>
        <td><input type="text" name="price" size="3" value="<?= isset($_GET['red']) ? $akcii['price'] : ''; ?>"> руб.</td>
      </tr>
      <tr>
        <td>Путь к картинке:</td>
        <td><input type="text" name="image" size="3" value="<?= isset($_GET['red']) ? $akcii['image'] : ''; ?>"></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" value="Добавить товар"></td>
      </tr>
    </table>
  </form>
  <?php
  //Получаем данные
 $sql = mysqli_query($link, 'SELECT `id`, `title`, `price`, `image` FROM `akcii`');
  while ($result = mysqli_fetch_array($sql)) {
    echo "<p>{$result['id']}) {$result['title']} {$result['image']} - {$result['price']} ₽ - <a href='?del={$result['id']}'>Удалить</a> - <a href='?red={$result['id']}'>Редактировать</a></p>";
  }
  ?>
  </body>
</html>

Таблицы такие 6286618028d9f645529801.png
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
он добавляется и в первую и во вторую таблицу , как исправить чтобы добавлялся только во 2 ?
во первых нормально организовать код, логика сверху, хтмл разметка снизу. в идеале все это разнести по шаблонам, но думаю для вас это что-то за гранью... во вторых нормально организовать проверки, у вас там 2 условия могут срабатывать при пост запросе, так как там тупо елс выполняется без проверки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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