За последние 24 часа нас посетили 17684 программиста и 1362 робота. Сейчас ищут 1172 программиста ...

Из интернет магазина циклом выводятся 2 записи из бд с ссылками

Тема в разделе "PHP для новичков", создана пользователем Амай, 26 мар 2025 в 13:55.

  1. Амай

    Амай Новичок

    С нами с:
    Вторник
    Сообщения:
    3
    Симпатии:
    0
    ссылки ведут они на одну и ту же страницу с подробным описанием товара. Как понять на какую именно запись нажал пользователь чтобы передать на эту страницу id товара ?
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.847
    Симпатии:
    653
    Ссылки должны вести на разные страницы. Я вам в др. теме накидал терминов. Если что-то непонятно, уточняйте или ищите определения этих терминов в сети.
    --- Добавлено ---
    Пофиг, какие сущности, пользователи, товары и т.п. Принцип везде одинаковый. Просто для товаров у тебя будут адреса вроде /products/1 (/goods/1) вместо /users/1 ;)
    --- Добавлено ---
    Взять id из адреса. Только прежде чем полноценно обрабатывать, нужно понять, что это именно id товара, а не др. сущности. Роутер как раз и занимается этим – распределяет запросы по нужным обработчикам.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.124
    Симпатии:
    1.246
    Адрес:
    там-сям
    @Амай выше тебе всё верно написали. Я только уточню именно термины. Страница в смысле адреса (URL) должна быть своя на каждую отдельную сущность. А вот файл скрипта может быть один и тот же. Просто он параметры разные получает и поэтому возвращает разный ответ.
    Конечно, роутер и единая точка входа (т.н. фронт-контролллер) — это отличная практика. Однако, для простоты в целях обучения, можно начать с отдельного скрипта для товара, у которого будет параметр: идентификатор товара.

    Например: https://mymag.test/product.php?id=128

    Ещё раз, скрипт product.php один, но для браузера каждый товар со своим id будет выглядеть отдельной страницей!
    Бывает что люди с "джаваскриптом головного мозга" мыслят только в терминах "кликнул-изменилось" и реализуют всю фигню на одном и том же URL. Но это чревато ошибками, т.к. логически криво, непредсказуемо при переходе извне и нарушает принцип "идемпотентности GET-запроса". Во как! :)

    Давай скажем по-другому: "как скрипт может понять, какую запись он должен показать?". Потому что скрипту неведомо "нажал" это кто-то или это скажем робот поисковика обходит страницы, это неважно! Есть запрос, у него есть параметры. Если это параметр после "?" в строке адреса, то это GET-параметр и в php ты его получаешь из массива $_GET.

    PHP:
    1. <?php
    2.  
    3. $productId = $_GET['id'] ?? null;
    4.  
    5. ?>
    6.  
    7. Product <?= var_dump($productId); ?>.
    --- Добавлено ---
    Каждый раз когда пользователь "нажимает" на ссылке, браузер посылает на сервер новый GET-запрос с адресом, который у тебя указан в теге A.

    PHP:
    1. <a href="/product.php?id=123">чипсы Lays</a>