@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
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
он добавляется и в первую и во вторую таблицу , как исправить чтобы добавлялся только во 2 ?
во первых нормально организовать код, логика сверху, хтмл разметка снизу. в идеале все это разнести по шаблонам, но думаю для вас это что-то за гранью... во вторых нормально организовать проверки, у вас там 2 условия могут срабатывать при пост запросе, так как там тупо елс выполняется без проверки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы