За последние 24 часа нас посетили 37803 программиста и 7849 роботов. Сейчас ищут 1752 программиста ...

Необходима помощь php Непередает "id" в обработчик

Тема в разделе "PHP для новичков", создана пользователем Mixupp, 5 авг 2023.

  1. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    PHP:
    1. <?
    2.                         if (!isset($id))
    3.                         {$result = mysqli_query($db, "SELECT id,title FROM `lesson`");
    4.                          $myrow = mysqli_fetch_array($result);
    5.                              do
    6.                                 {printf ("<p><a href='edit_lesson.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);}
    7.                              while ($myrow = mysqli_fetch_array($result));}
    8.                             else { $result = mysqli_query($db, "SELECT * FROM `lesson` WHERE id=$id");
    9.                                   $myrow = mysqli_fetch_array($result);
    10. print <<<HERE
    11. <form name="form1" method="POST" action="update_lesson.php">
    12.         <p>
    13.              <label>Введите название инструкции<br>
    14.             <input name="title" type="text" id="title" value="$myrow[title]">
    15.             </label>
    16.         </p>
    17.         <p>
    18.                <label>Введите краткое описание Инструкции<br>
    19.                <input type="text" name="meta_d" id="meta_d" value="$myrow[meta_d]">
    20.                </label>
    21.         </p>
    22.         <p>
    23.              <label>Введите ключевые слова<br>
    24.             <input type="text" name="meta_k" id="meta_k" value="$myrow[meta_k]">
    25.             </label>
    26.         </p>
    27.         <p>
    28.              <label>Введите дату добавления инструкции<br>
    29.               <input name="date" type="text" id="date" value="2023-08-01" value="$myrow[date]">
    30.                </label>
    31.         </p>
    32.         <p>
    33.            <label>Ведите краткое описание инструкции с тэгами абзацев<br>
    34.            <textarea name="discription" id="discription" cols="100" rows="5">$myrow[discription]</textarea>
    35.            </label>
    36.         </p>
    37.         <p>
    38.             <label>Введите полный текст инструкции с тэгами<br>
    39.                <textarea name="text" id="text" cols="100" rows="20">$myrow[text]</textarea>
    40.                </label>
    41.         </p>
    42.         <p>
    43.            <label>
    44.            <input type="submit" name="submit" id="submit" value="Сохранить изменения">
    45.            </label>
    46.          </p>
    47.        </form>
    48. HERE;
    49. }
    50. ?>
    сам обработчик

    PHP:
    1. <?php
    2.                                 if (isset($title) && isset($meta_d) && isset($meta_k) && isset($date) && isset($discription) && isset($text))
    3.                                 {$result = mysqli_query ($db, "UPDATE lesson SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', discription='$discription', text='$text' WHERE id=$id");
    4.                                      if ($result == 'true') {echo "<p>Ваша инструкция обновлена!</p>";}
    5.                                      else {echo "<p>Ваша инструкция не обновлена!</p>";}}
    6.                                     else {echo "<p>Вы ввели не всю информацию, поэтому инструкция в базе не может быть обновлена.</p>";}
    7.                             ?>
     
    #1 Mixupp, 5 авг 2023
    Последнее редактирование: 5 авг 2023
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.840
    Симпатии:
    1.338
    Адрес:
    Лень
    Пап, Мам я голодный.
    - Так иди поешь.
    Но я же голодный.
     
  3. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    Че?
     
  4. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    1. Просмотрите исходный код формы. Есть ли в нем необходимый параметр. И передайте форму
    2. Замените ваш обработчик на простейший (print_r($_POST)) и убедитесь, что вышеупомянутые данные в выводе присутствуют.
     
  5. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    А по какому источнику учишь пыху? Такое впечатление, что код рассчитан на register_globals on, а это лет 12 назад как устарело.

    Сейчас используются суперглобальные массивы $_POST, $_GET
     
  6. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    Да вы правы. 2007 г. обучалка. Откапал в закрамах, стало интересно, решил начать.
     
  7. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    сделал файлы добавление и удаления - все работает. А обновление при присвоении ID нет. если удаляю WHERE id=$id изменяет все данные в базе. Вывод, что id не передается в обработчик. Сижу уже два над этим найти ошибку не могу. Я понимаю что уже есть новые, но мне необходимо именно по этой обучалки.


    Спасибо заранее!!
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    В экскрементах доисторического предка слона никому копаться не интересно. Тут даже не понятно, откуда берется $id. Обычно из адреса, т.е. GET-параметра, но ХЗ как тут. Обучалка по-любому фиговая. На свалку!
    --- Добавлено ---
    А вообще сейчас id-шники прямо в путях указывают. Пример: g09.ru/page (тут id-шник символьный, т.е. слаг, но это пофиг). Редактирую эту страницу, например, по адресу g09.ru/pages/page (пример формы):
    PHP:
    1. <?php
    2.  
    3. extra('head-section','
    4. <style type="text/css">
    5. input { display: block; }
    6. </style>');
    7.  
    8. ?>
    9. <h1>ID: <?= $page['id'] ?></h1>
    10. <form method="post">
    11. <input type="text" name="name" value="<?= htmlspecialchars($page['name']) ?>">
    12. <textarea name="content"><?= htmlspecialchars($page['content']) ?></textarea>
    13. </form>
    По этому же адресу можно и сохранять (POST'ом). Когда нет атрибута action или он пустой, так и происходит.
     
  9. Mixupp

    Mixupp Новичок

    С нами с:
    11 окт 2021
    Сообщения:
    14
    Симпатии:
    0
    Спасибо. Я понял. Буду искать обучалки.... Впринципе я понял примерно что надо сделать.

    еще раз спасибо!