За последние 24 часа нас посетили 15680 программистов и 1645 роботов. Сейчас ищут 927 программистов ...

Как сделать чтобы при нажатии на ссылку открывалась страница только с данными того id

Тема в разделе "PHP для новичков", создана пользователем Suyunoff, 12 окт 2019.

Метки:
  1. Suyunoff

    Suyunoff Новичок

    С нами с:
    16 июл 2019
    Сообщения:
    38
    Симпатии:
    1
    Привет, пишу интернет магазин с каталогами, при нажатии на ссылку должна перейти на страницу pay.php и выйти информация о товаре, какой код использовать? можете написать ? я пока новичок и не пока могу не понимать как вы объясняете)
    выбор товара из бд
    Код (Text):
    1.  $result = mysql_query("SELECT * FROM catalog  ",$link);
    2.    if(mysql_num_rows($result) > 0)
    3.    {
    4.  
    5.        $row = mysql_fetch_array($result);
    Это вывод информации в виде каталога, <a href="pay.php?"id='.$row['id'].'"> эта та самаая ссылка
    Код (Text):
    1. <li>
    2. <div class="block-images-grid">
    3. <img src="'.$img_path.'" width="'.$width.'" height="'.$height.'" />
    4. </div>
    5.  
    6. <p class="style-title-grid"><a href="pay.php?id='.$row['id'].'">'.$row["name"].'</a></p>
    7.  
    8.  
    9. <p class="style-price-grid"><strong>'.$row["price"].'</strong>тг</p>
    10. <div class="mini-features">
    11. '.$row["opisanie"].'
    12. </div>
    13.  
    14. </li>
     
  2. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Где вы все берёте mysql?
     
  3. Suyunoff

    Suyunoff Новичок

    С нами с:
    16 июл 2019
    Сообщения:
    38
    Симпатии:
    1
    не обращай внимания))), это курсовой проект,1 раз защитить и всё, и да, я разобрался, надо было $_get['id'] добавить)
     
    artoodetoo нравится это.
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    @Suyunoff, это в каком гареме учили синтаксису каменного века ?
     
  5. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Садись 2. Защитить можешь но лучше сразу учить правильный синтаксис.
    PHP:
    1. $stmt = $pdo->prepare("SELECT * FROM `catalog`") -> execute();
    2. $res = $stmt -> fetchAll(); // вытащить все строки
    --- Добавлено ---
    Не просто добавить $_GET['id'] ты ещё должен проверить что попадает в $_GET['id']
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    @_ne_scaju_ зачем ему prepare ? pdo ? что-то объяснять ?
    и ты мульти-миллионер
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    чтоб человек понял что у него синтаксис mysql старый.
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    ну так причем тут prepare ? pdo ?
     
  9. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    типа если нет плейсхолдера то препаре не нужен, ты к этому клонишь?
     
  10. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @_ne_scaju_ ты ему не то что новый синтаксис показал, а вообще другой драйвер
    --- Добавлено ---
    @_ne_scaju_ если в запросе нету данных которые пришли от юзера, то их подготавливать не надо
     
    miketomlin и _ne_scaju_ нравится это.
  11. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    @_ne_scaju_, зачем показанному тобой запросу вообще prepare? :)
    --- Добавлено ---
    P.S. Даже выборку по ключам вроде id можно делать без подготовленных запросов.
     
    _ne_scaju_ нравится это.
  12. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    PHP:
    1. $stmt = $pdo->query("SELECT * FROM `catalog`") -> execute();
    2. $res = $stmt -> fetchAll();
     
  13. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    а в процедурном стиле ? у него не ооп функционал !
     
  14. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    PHP:
    1. $stmt = $pdo->query("SELECT * FROM `catalog`");
    2. $stmt -> execute();
    3. $res = $stmt -> fetchAll();
    4.   foreach ($res as $val) {
    5.     print_r("ID: $val['cat_id'], catalog_name: $val['cat_name']");
    6.   }
     
  15. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    в процедурном !
     
  16. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    @_ne_scaju_ первые 3 строчки не правильные
     
  17. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    не знаю как, не писал я на процедурном, сразу учил ООП.
    Почему? Покажи правильно а то сказать что не правильно и не показать пример это не аргумент.
     
  18. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    @_ne_scaju_, в PDO нету процедурного стился.
    Почему ты execute юзаешь после query? у тебя запрос подготавливается или что за магия ?
     
  19. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    а разве можно буде вызвать fechAll если мы не заюзаем execute()?
     
  20. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    а почему execute ты не юзаешь после fetchAll ? o_O
     
  21. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    это будет не правильно, и возможно будет ошибка. я вообще не когда после fethcAll не юзал execute()
     
  22. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    а ты не юзай execute после fetchAll(), а юзай fetch() перед execute()
     
  23. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    я хотел вытащить все строки из бд, если юзать fetch() после execute() то получу одну строку из бд или я не прав?