• Как структурировать бд?

    @Chesterfield25 Автор вопроса
    SagePtr, Правильно я понял?

    CREATE TABLE IF NOT EXISTS `product_country` (
        `product_id` int(11) NOT NULL,
        `country_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
    
    CREATE TABLE IF NOT EXISTS `product_shop` (
        `product_id` int(11) NOT NULL,
        `shop_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
    
    CREATE TABLE IF NOT EXISTS `product_section` (
        `product_id` int(11) NOT NULL,
        `section_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
    
    CREATE TABLE IF NOT EXISTS `product_category` (
        `product_id` int(11) NOT NULL,
        `category_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
    
    CREATE TABLE IF NOT EXISTS `product_subcategory` (
        `product_id` int(11) NOT NULL,
        `subcategory_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;


    А у таблицы products удалить shop_id, country_id и subcategory_id?
  • Как структурировать бд?

    @Chesterfield25 Автор вопроса
    Женя Ренессанс, Правильно я понял?

    CREATE TABLE IF NOT EXISTS `product_country` (
        `product_id` int(11) NOT NULL,
        `country_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
    
    CREATE TABLE IF NOT EXISTS `product_shop` (
        `product_id` int(11) NOT NULL,
        `shop_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
    
    CREATE TABLE IF NOT EXISTS `product_section` (
        `product_id` int(11) NOT NULL,
        `section_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
    
    CREATE TABLE IF NOT EXISTS `product_category` (
        `product_id` int(11) NOT NULL,
        `category_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
    
    CREATE TABLE IF NOT EXISTS `product_subcategory` (
        `product_id` int(11) NOT NULL,
        `subcategory_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;


    А у таблицы products удалить shop_id, country_id и subcategory_id?
  • Как структурировать бд?

    @Chesterfield25 Автор вопроса
    Женя Ренессанс, В примере выше что именно используется OneToMany - один ко многим или ManyToMany - многие ко многим?
  • Как структурировать бд?

    @Chesterfield25 Автор вопроса
    Женя Ренессанс, Спасибо не заметил. Может в таком случае имеет смысл создать таблицу не products_countries (product_id, country_id) а таблицу
    products_countries_categories (product_id, country_id, categry_id,)
    Что бы можно было выводить не все категории если пользователь выберет определенную страну а только те категории в которых есть товары которые относятся к указанной стране?
  • Как структурировать бд?

    @Chesterfield25 Автор вопроса
    Rsa97, Может в таком случае имеет смысл создать таблицу не products_countries (product_id, country_id) а таблицу
    products_countries_categories (product_id, country_id, categry_id,)
    Что бы можно было выводить не все категории если пользователь выберет определенную страну а только те категории в которых есть товары которые относятся к указанной стране?
  • Как структурировать бд?

    @Chesterfield25 Автор вопроса
    Если правильно понимаю вот примерно то что мне нужно

    1. База стран
    CREATE TABLE IF NOT EXISTS `country` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(256) NOT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


    2. База магазинов
    CREATE TABLE IF NOT EXISTS `shop` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(256) NOT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


    3. База product_id и country_id
    CREATE TABLE IF NOT EXISTS `product_coutry` (
        `product_id` varchar(256) NOT NULL,
        `country_id` int(11) NOT NULL,
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;


    4. База разделов товаров
    CREATE TABLE IF NOT EXISTS `sections` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(256) NOT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


    5. База категорий товаров, категория принадлежит определенному разделу
    CREATE TABLE IF NOT EXISTS `categories` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(256) NOT NULL,
        `section_id` int(11) NOT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


    6. База подкатегорий товаров, подкатегория принадлежит определенной категорие
    CREATE TABLE IF NOT EXISTS `subcategory` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(256) NOT NULL,
        `category_id` int(11) NOT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


    7. База товаров
    CREATE TABLE IF NOT EXISTS `products` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `name` varchar(256) NOT NULL,
        `description` varchar(256) NOT NULL,
        `url` varchar(256) NOT NULL,
        `price` double NOT NULL,
        `shop_id` int(11) NOT NULL,
        `created` datetime NOT NULL,
        `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  • Как структурировать бд?

    @Chesterfield25 Автор вопроса
    В таком случае столбец в products с названием id_country не нужно создавать?
  • Почему не подгружаются стили?

    @Chesterfield25 Автор вопроса
    Убрал точки но проблема осталась. Плюс ко всему если просто открыть страницу signup.php то данной проблемы нету
  • Почему не могу создать регистрацию?

    @Chesterfield25 Автор вопроса
    Ипатьев, а с чего вы взяли что я вызываю на прямую а не через форму? У меня есть форма.
  • Почему не могу создать регистрацию?

    @Chesterfield25 Автор вопроса
    Потом другая проблема появляется
    [06-Sep-2022 05:15:00 UTC] PHP Notice:  Undefined index: username in /home/patedfrb/public_html/affiliateproduct/do_register.php on line 7
    [06-Sep-2022 05:15:00 UTC] PHP Notice:  Undefined index: username in /home/patedfrb/public_html/affiliateproduct/do_register.php on line 17
    [06-Sep-2022 05:15:00 UTC] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'username' cannot be null in /home/patedfrb/public_html/affiliateproduct/do_register.php:18
    Stack trace:
    #0 /home/patedfrb/public_html/affiliateproduct/do_register.php(18): PDOStatement->execute(Array)
    #1 {main}
      thrown in /home/patedfrb/public_html/affiliateproduct/do_register.php on line 18


    do_register.php

    <?php
    
    require_once __DIR__.'/boot.php';
    
    // Проверим, не занято ли имя пользователя
    $stmt = pdo()->prepare("SELECT * FROM `admin` WHERE `username` = :username");
    $stmt->execute(['username' => $_POST['username']]);
    if ($stmt->rowCount() > 0) {
        flash('Это имя пользователя уже занято.');
        header('Location: /'); // Возврат на форму регистрации
        die; // Остановка выполнения скрипта
    }
    
    // Добавим пользователя в базу
    $stmt = pdo()->prepare("INSERT INTO `admin` (`username`, `password`) VALUES (:username, :password)");
    $stmt->execute([
        'username' => $_POST['username'],
        'password' => password_hash($_POST['password'], PASSWORD_DEFAULT),
    ]);
    
    header('Location: login.php');
  • Как открыть ссылку в фрейме?

    @Chesterfield25 Автор вопроса
    А можно сделать так что бы ссылка открывалась не во фрейме а в том же окне только в определенном контейнере?

    <div class="container w-100 p-3">
    
            <div class="row justify-content-center">
                <div class="col-4">col-4</div>
                <div class="col-8">
                    
                    <form class="row justify-content-center">
                        <div class="col-8">
                          <label for="inputPassword2" class="visually-hidden">URL</label>
                          <input type="text" class="form-control" id="inputUrl" placeholder="Url">
                        </div>
                        <div class="col-auto">
                          <button type="submit" class="btn btn-primary mb-3">Open</button>
                        </div>
                    </form>
    
                </div>
            </div>
        </div>


    А конкретно в контейнере <div class="col-8">
  • Как сделать итерацию массива?

    @Chesterfield25 Автор вопроса
    Молодец. Только данный комментарий к сути вопроса отношения не имеет никакого.
  • Как получить все значения элементов массива?

    @Chesterfield25 Автор вопроса
    Araya, учусь поэтому и спрашиваю. Когда пойму что где и зачем оно там нужно, перестану.
  • Как получить все значения элементов массива?

    @Chesterfield25 Автор вопроса
    Алан Гибизов,

    public class MaxArrayValue {
      int[] numbers = {1, 7, 5, 2, 4};
      public static int getMaxNumber(int[] numbers) {
        //Write code below this line
        int max = 1;
        for(int i = 0; i < numbers.length; i++) {
          System.out.println(numbers[i]);
        }
        return numbers[i];
      }
    }


    но таким образом в i я получаю индекс массива
  • Как получить все значения элементов массива?

    @Chesterfield25 Автор вопроса
    Алан Гибизов, получить значения всех элементов
  • Как правильно создать CallBack?

    @Chesterfield25 Автор вопроса
    Dmtm, получилось всё кроме одного, значение id = null. Почему то передаваемое значение пустое? Свой вопрос немного изменил.
  • Как правильно создать CallBack?

    @Chesterfield25 Автор вопроса
    Jacen11, Я привык с java работать.
  • Как правильно создать CallBack?

    @Chesterfield25 Автор вопроса
    Dmtm, подскажите как это сделать а то я вообще запутался
  • Как правильно создать CallBack?

    @Chesterfield25 Автор вопроса
    Интерфейс IItemClick не получается передать в конструктор
    Создаю интерфейс сразу после создания адаптера
    private void PutDataIntoRecyclerView(List<CategoryModel> categoryList) {
            CategoryAdapter categoryAdapter = new CategoryAdapter(getContext(), categoryList);
            binding.recyclerMain.setLayoutManager(new LinearLayoutManager(getContext()));
    
            binding.recyclerMain.setAdapter(categoryAdapter);
    
        }
        interface IItemClick {
            public void onClick(int id);
        }


    Когда в конструктор добавляю IItemClick itemClick сразу предлагает импортировать класс HomeFragment. После импорта класса в конструкторе следующая ошибка

    62f5ec3374e2a035113905.png

    А в фрагменте другая

    62f5eca05b4f9108810054.png