За последние 24 часа нас посетили 10014 программистов и 849 роботов. Сейчас ищут 339 программистов ...

Пользователи и их товары.

Тема в разделе "Сделайте за меня", создана пользователем Vin-diesel, 2 мар 2019.

  1. Vin-diesel

    Vin-diesel Новичок

    С нами с:
    2 мар 2019
    Сообщения:
    9
    Симпатии:
    0
    создал в бд таблицу с товарам,и не могу понять как адресовать товары к пользователю которые он загрузил.
    Например когда пользователь заходит и нажимает мои товары и что бы ему показывались его товары а не вся таблица с бд,а то получается видны все товары а нужно что бы именно его товары.
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Должно быть три таблицы. Таблица товаров, таблица пользователей и таблица связи товар пользователь. Гугли на тему отношений в бд, в частности "многие ко многим"
     
    artoodetoo нравится это.
  3. Vin-diesel

    Vin-diesel Новичок

    С нами с:
    2 мар 2019
    Сообщения:
    9
    Симпатии:
    0
    Спасибо за ответ.

    Но ответ я так и не нашел,
    я понял что и как,но до меня не долшо как загрузить товар сразу в две таблицы.
    Начал исходить из того что,есть таблица товаров,пользователь и корзина.
    В корзину товаров попадают товары по айпи и я решил как то через это сделать.
    Но когда пользователь грузит товар то он попадает в общий поток потом и ему нужно нажать на кнопку что бы
    его товар попал к нему в его товары.
     
  4. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Так вам нужна корзина или просто пометить, что определённый товар загрузил на сайт определённый пользователь? Если последнее, то достаточно в таблицу товаров добавить поле с идентификатором пользователя. Если вы идентифицирует пользователя по ip то готовьтесь к проблемам.
     
  5. Vin-diesel

    Vin-diesel Новичок

    С нами с:
    2 мар 2019
    Сообщения:
    9
    Симпатии:
    0
    Мне нужно что бы определенный пользователь загружал определенный товар.
    Я прогуглил тему "многие ко многим" и не нашел то что нужно.
    И поэтому решил попробовать через корзину,а через корзину идентифицирует по айпи.

    В таблице table_products есть поле products_id,получается в эту же таблицу добавить к примеру user_id?
    Получается что запрос будет SELECT *FROM table_products WHERE user_id?
     
  6. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Да, выборка товара по идентификатору пользователя. Многие ко многим - это корзина. В случае отношения товар пользователь - это многие к одному.
    На счёт ip я предупредил. В один прекрасный день это выстрелит и не важно в корзине или где-то ещё. Идентифицировать пользователя исключительно по ip нельзя. Но я смотрю вас мало это волнует.
     
  7. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Наоборот :)
    Один товар у нескольких пользователей, несколько товаров у одного пользователя. И не будет же общая корзина у нескольких пользователей.
     
    #7 keren, 4 мар 2019
    Последнее редактирование: 4 мар 2019
  8. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @keren, не умение выражать свои мысли пагубно сказывается на навыках программирования в частности и на логике в целом. Читайте как можно больше книг.
     
  9. Павел Голубцов

    Павел Голубцов Активный пользователь

    С нами с:
    4 мар 2019
    Сообщения:
    183
    Симпатии:
    4
    По простому если, создать таблицу user_tovar с полями: id, user_id, tovar_id, kolichestvo.
    При покупке пользователем товара из таблицы товаров вычитается по tovar_id, kolichestvo и записывается в таблицу user_tovar.
    При нажатии кнопки корзина запрашивается таблица user_tovar, выводится его результат или echo 'у вас нет товаров';
    Как то так.
     
  10. Vin-diesel

    Vin-diesel Новичок

    С нами с:
    2 мар 2019
    Сообщения:
    9
    Симпатии:
    0
    На счет корзины.
    Я попробовал это как вариант,вариант товара у пользователя,но ничего не вышло.
    По сути там нету корзины.
    Была задача сделать пользователь и его товар,а я решил сделать данный метод через корзину.
    Но ничего не вышло и поэтому я обратился за помощью сюда.
    Вроде все получилось.Спасибо за помощь!
     
  11. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Так и не понятно, что тебе было нужно, боюсь даже спросить, что у тебя получилось...
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.370
    Симпатии:
    554
    Лично у меня, судя по описанию, сложилось впечатление, что товары загружает пользователь-продавец. В таком случае достаточно снабдить каждый товар идентификатором продавца (при условии, что на сайте не используется общая для всех продавцов номенклатура товаров).
     
  13. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    miketomlin нравится это.
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.370
    Симпатии:
    554
    Увидел. ТС вроде четко ответил на это в след. посте. Каким боком тут корзина?
     
  15. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @miketomlin, дальше интереснее, если почитать
    И самое главное словосочетание "пользователь загружает" ни][ера не понятно в какую сторону, то ли на сервер в бд, то ли к себе в корзину...
     
  16. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.370
    Симпатии:
    554
    @Valick, а ну понятно: ТС сам завел песню про корзину еще в 3-ем посте.

    @Vin-diesel, учитесь отделять мух от котлет, о чем вам уже сказали.
    --- Добавлено ---
    @Valick, но про «многие ко многим» все-таки ты первый начал и тем самым мог дезориентировать ТСа ;)
     
  17. Vin-diesel

    Vin-diesel Новичок

    С нами с:
    2 мар 2019
    Сообщения:
    9
    Симпатии:
    0
    Я гуглил тему "многие ко многим" это три таблицы,товар юзер и юзер товар и я не совсем понял и решил попробовать сделать это через корзину так как там идет юзер товар и корзина.
    Получается изначально я не правильно задал вопрос.
    Получает что "продавец и его товар" подобие сайта объявлений.

    И вот внес в таблицу поле юзер,и поставил сразу в поле юзера айди,и высвитился товар юзера:)
     
  18. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Vin-diesel, еще раз повторяю. Корзина (cart) - это и есть отношение многие ко многим (many-to-many)
    prodict (product_id, product_name ...)
    user (user_id, user_name ...)
    catr (cart_id, product_id, user_id, cart_product_count ...)

    И только говнокодеры делают корзину иначе
     
  19. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.370
    Симпатии:
    554
    Yes. У нас есть проект магазина-комиссионки. Там id продавца указывается непосредственно у товара. Т.е., грубо говоря, две таблицы, связь «один-ко-многим».
    --- Добавлено ---
    Корзина – это отдельный вопрос. Она относится не к продавцам, а к покупателям.
     
  20. Vin-diesel

    Vin-diesel Новичок

    С нами с:
    2 мар 2019
    Сообщения:
    9
    Симпатии:
    0
    Спасибо прояснили.
     
  21. Vin-diesel

    Vin-diesel Новичок

    С нами с:
    2 мар 2019
    Сообщения:
    9
    Симпатии:
    0
    @miketomlin@Valick
    вообщем столкнулся с проблемой с добавлением товара в базу данных,не добавляется айди админа
    поставил айди админа у трех товаров,всего три админа и у этих трех админов показывает эти же три товара.
    копался в коде и запутался.

    mysql_query("INSERT INTO table_products,(title,brand,type_tovara,brand_id,)
    VALUES(
    '".$_POST["form_title"]."',
    '".$selectbrand."',
    '".$_POST["form_type"]."',
    '".$_POST["form_category"]."',
    )",$link);
     
  22. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.370
    Симпатии:
    554
    Valick, видимо, не увидит ;)

    И Хде тут «айди админа»? В тексте запроса синтаксические ошибки. Я насчитал три лишние запятые.
    --- Добавлено ---
    P.S. Делать за вас не буду, сорри. Если вам не нужны мои наставления, напишите об этом.
     
  23. Vin-diesel

    Vin-diesel Новичок

    С нами с:
    2 мар 2019
    Сообщения:
    9
    Симпатии:
    0
    ну не увидит так не увидит
    Я не прошу за меня делать код,я лишь хочу что бы был какой то совет,
    код что я написал он был изначально почти таким после продуктс не было запятой я просто запутался и отправил такой код
    Я вставлял в поле и админ ид и ничего не происходит.

    совет,правильно не правильно иди переделывай типа того.

    mysql_query("INSERT INTO table_products(title,admin_id,brand,type_tovara,brand_id)
    VALUES(
    '".$_POST["form_title"]."',
    '".$selectbrand."',
    '".$_POST["admin_id"]."',
    '".$_POST["form_type"]."',
    '".$_POST["form_category"]."',
    )",$link);

    я просто не понимаю куда уже вставлять,я понимаю что не правильно но для этого и существует форум
    ладно бы я вообще ничего не делал и попрошайничал на форуме,но я часа 4 искал ошибку так и не понял перерыл код и вообще окончательно запутался,
    Как говорится если не можешь сделать или что то не получается обратись на форум тебе помогут
    Если бы я не начал тут тему я бы все еще пытался бы настроить товар для продавца.
     
  24. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.370
    Симпатии:
    554
    Имелось в виду, что может не увидеть из-за вашего обращения ;)

    Нафиг гонять этот идентификатор туда-сюда (с сервера на клиент и обратно) при добавлении товара? Он должен храниться в серверной структуре данных, связанной с авторизованным пользователем, например в массиве $user.

    У вас все плохо: теперь порядок следования имен полей не соответствует порядку следования значений, запятую после последнего значения не убрали. Если проблемы со внимательностью, обязательно нужно использовать вывод ошибок с макс. детализацией, запускать для проверки после каждого мин. изменения и т.п.
    --- Добавлено ---
    Т.е. примерно так:
    Код (Text):
    1. ...(`admin_id`,...) VALUES ({$user['id']},...)
    --- Добавлено ---
    P.S. Если у вас нет авторизации, от пользователя нужно получать какой-нибудь user-friendly идентификатор, например мыло, попутно заменяя его на числовой id и расширяя при необходимости таблицу пользователей.
    --- Добавлено ---
    P.P.S. Но для функционала «мои товары» из стартового поста лучше делать авторизацию. Либо ограничиться публичной фильтрацией, т.е. грубо говоря есть страница /users со списком пользователей и ссылками на их страницы с товарами /users/1, /users/2 и т.д.
     
  25. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.370
    Симпатии:
    554
    В адресах можно тоже использовать user-friendly идентификаторы, например /author/mike.