За последние 24 часа нас посетили 22462 программиста и 1188 роботов. Сейчас ищут 736 программистов ...

почему не добавляется код в табличку?

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

  1. jpc

    jpc Зэк
    [ БАН ]

    С нами с:
    30 июн 2019
    Сообщения:
    128
    Симпатии:
    0
    PHP:
    1. <!doctype html>
    2. <html lang="ru">
    3. <head>
    4.     <title>Админ-панель</title>
    5. </head>
    6. <body>
    7. <?php
    8. $host = 'localhost';  // Хост, у нас все локально
    9. $user = 'php';    // Имя созданного вами пользователя
    10. $pass = 'пароль'; // Установленный вами пароль пользователю
    11. $db_name = 'base3';   // Имя базы данных
    12. $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
    13.  
    14. // Ругаемся, если соединение установить не удалось
    15. if (!$link) {
    16.     echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
    17.     exit;
    18. }
    19.  
    20. //Если переменная Name передана
    21. if (isset($_POST["Name"])) {
    22.     //Если это запрос на обновление, то обновляем
    23.     if (isset($_GET['red_id'])) {
    24.         $sql = mysqli_query($link, "UPDATE `products` SET `Name` = '{$_POST['Name']}',`Price` = '{$_POST['Price']}' WHERE `ID`={$_GET['red_id']}");
    25.     } else {
    26.         //Иначе вставляем данные, подставляя их в запрос
    27.         $sql = mysqli_query($link, "INSERT INTO `products` (`Name`, `Price`) VALUES ('{$_POST['Name']}', '{$_POST['Price']}')");
    28.     }
    29.  
    30.     //Если вставка прошла успешно
    31.     if ($sql) {
    32.         echo '<p>Успешно!</p>';
    33.     } else {
    34.         echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
    35.     }
    36. }
    37.  
    38. if (isset($_GET['del_id'])) { //проверяем, есть ли переменная
    39.     //удаляем строку из таблицы
    40.     $sql = mysqli_query($link, "DELETE FROM `products` WHERE `ID` = {$_GET['del_id']}");
    41.     if ($sql) {
    42.         echo "<p>Товар удален.</p>";
    43.     } else {
    44.         echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
    45.     }
    46. }
    47.  
    48. //Если передана переменная red_id, то надо обновлять данные. Для начала достанем их из БД
    49. if (isset($_GET['red_id'])) {
    50.     $sql = mysqli_query($link, "SELECT `ID`, `Name`, `Cod`,`Price` FROM `products` WHERE `ID`={$_GET['red_id']}");
    51.     $product = mysqli_fetch_array($sql);
    52. }
    53. ?>
    54. <form action="" method="post">
    55.     <table>
    56.         <tr>
    57.             <td>Наименование:</td>
    58.             <td><input type="text" name="Name" value="<?= isset($_GET['red_id']) ? $product['Name'] : ''; ?>"></td>
    59.         </tr>
    60.         <tr>
    61.             <td>Cod:</td>
    62.             <td><input type="text" name="Cod" value="<?= isset($_GET['red_id']) ? $product['Cod'] : ''; ?>"></td>
    63.         </tr>
    64.         <tr>
    65.             <td>Цена:</td>
    66.             <td><input type="text" name="Price" size="3" value="<?= isset($_GET['red_id']) ? $product['Price'] : ''; ?>"> грн.</td>
    67.         </tr>
    68.         <tr>
    69.             <td colspan="2"><input type="submit" value="OK"></td>
    70.             <p><a href="?add=new">Добавить новый товар</a></p>
    71.         </tr>
    72.     </table>
    73. </form>
    74. <table border='1'>
    75.     <tr>
    76.         <td>Идентификатор</td>
    77.         <td>Наименование</td>
    78.         <td>Cod</td>
    79.         <td>Цена</td>
    80.         <td>Удаление</td>
    81.         <td>Редактирование</td>
    82.     </tr>
    83.     <?php
    84.     $sql = mysqli_query($link, 'SELECT `ID`, `Name`, `Cod`,`Price`  FROM `products`');
    85.     while ($result = mysqli_fetch_array($sql)) {
    86.         echo '<tr>' .
    87.             "<td>{$result['ID']}</td>" .
    88.             "<td>{$result['Name']}</td>" .
    89.             "<td>{$result['Cod']}</td>" .
    90.             "<td>{$result['Price']} грн</td>" .
    91.             "<td><a href='?del_id={$result['ID']}'>Удалить</a></td>" .
    92.             "<td><a href='?red_id={$result['ID']}'>Изменить</a></td>" .
    93.             '</tr>';
    94.     }
    95.     ?>
    96. </table>
    97. </body>
    98. </html>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    я тебе в прошлый раз давал скрипт на актуальной основе. Где изменения ? бесполезно на тебя тратить время даже. Смысл тебе вообще помогать ?
     
    miketomlin нравится это.
  3. jpc

    jpc Зэк
    [ БАН ]

    С нами с:
    30 июн 2019
    Сообщения:
    128
    Симпатии:
    0
    Я хочу научиться
    мне код не важен. Мне важно в голову чтоб вошло
    Я хочу научиться
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    И какого фига ты тогда опять «не сделал никакой защиты от SQL-инъекций (из-за чего может «сыпаться» текст запроса), не разделил POST-обработку и вывод (в частности вписал die внутри тэга body и т.п.)»?

    И нафиг тогда постить ЭТО? В сети и так хлама полно.
    --- Добавлено ---
    P.S. Удаление нужно делать исключительно по POST. На GET можешь навесить форму подтверждения.
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    Как раз по коду и учатся обычно самоучки.

    Если видите, что фреймворк использует что-то, что вы не до конца понимаете – выясните что это за штука!
     
  6. jpc

    jpc Зэк
    [ БАН ]

    С нами с:
    30 июн 2019
    Сообщения:
    128
    Симпатии:
    0
    про иньекции не знаю пока
    --- Добавлено ---
    PHP:
    1. <!doctype html>
    2. <html lang="ru">
    3. <head>
    4.     <title>Админ-панель</title>
    5. </head>
    6. <body>
    7. <?php
    8. $host = 'localhost';  // Хост, у нас все локально
    9. $user = 'php';    // Имя созданного вами пользователя
    10. $pass = 'Qwe123_!z'; // Установленный вами пароль пользователю
    11. $db_name = 'base3';   // Имя базы данных
    12. $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
    13.  
    14. // Ругаемся, если соединение установить не удалось
    15. if (!$link) {
    16.     echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
    17.     exit;
    18. }
    19.  
    20. //Если переменная Name передана
    21. if (isset($_POST["Name"])) {
    22.     //Если это запрос на обновление, то обновляем
    23.     if (isset($_GET['red_id'])) {
    24.         $sql = mysqli_query($link, "UPDATE `products` SET `Name` = '{$_POST['Name']}',`Cod` = '{$_POST['Cod']}',`Price` = '{$_POST['Price']}',`Description` = '{$_POST['Description']}' WHERE `ID`={$_GET['red_id']}");
    25.     } else {
    26.         //Иначе вставляем данные, подставляя их в запрос
    27.         $sql = mysqli_query($link, "INSERT INTO `products` (`Name`, `Price`, `Cod`,`Description`) VALUES ('{$_POST['Name']}', '{$_POST['Price']}', '{$_POST['Cod']}', '{$_POST['Description']}')");
    28.     }
    29.  
    30.     //Если вставка прошла успешно
    31.     if ($sql) {
    32.         echo '<p>Успешно!</p>';
    33.     } else {
    34.         echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
    35.     }
    36. }
    37.  
    38. if (isset($_GET['del_id'])) { //проверяем, есть ли переменная
    39.     //удаляем строку из таблицы
    40.     $sql = mysqli_query($link, "DELETE FROM `products` WHERE `ID` = {$_GET['del_id']}");
    41.     if ($sql) {
    42.         echo "<p>Товар удален.</p>";
    43.     } else {
    44.         echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
    45.     }
    46. }
    47.  
    48. //Если передана переменная red_id, то надо обновлять данные. Для начала достанем их из БД
    49. if (isset($_GET['red_id'])) {
    50.     $sql = mysqli_query($link, "SELECT `ID`, `Name`, `Cod`,`Price` ,`Description`FROM `products` WHERE `ID`={$_GET['red_id']}");
    51.     $product = mysqli_fetch_array($sql);
    52. }
    53. ?>
    54. <form action="" method="post">
    55.     <table>
    56.         <tr>
    57.             <td>Наименование:</td>
    58.             <td><input type="text" name="Name" value="<?= isset($_GET['red_id']) ? $product['Name'] : ''; ?>"></td>
    59.         </tr>
    60.         <tr>
    61.             <td>Cod:</td>
    62.             <td><input type="text" name="Cod" value="<?= isset($_GET['red_id']) ? $product['Cod'] : ''; ?>"></td>
    63.         </tr>
    64.         <tr>
    65.             <td>Цена:</td>
    66.             <td><input type="text" name="Price" size="3" value="<?= isset($_GET['red_id']) ? $product['Price'] : ''; ?>"> грн.</td>
    67.         </tr>
    68.         <tr>
    69.             <td>Описание:</td>
    70.             <td><input type="text" name="Description" value="<?= isset($_GET['red_id']) ? $product['Description'] : ''; ?>"></td>
    71.         </tr>
    72.         <tr>
    73.             <td colspan="2"><input type="submit" value="OK"></td>
    74.             <p><a href="?add=new">Добавить новый товар</a></p>
    75.         </tr>
    76.     </table>
    77. </form>
    78. <table border='1'>
    79.     <tr>
    80.         <td>Идентификатор</td>
    81.         <td>Наименование</td>
    82.         <td>Cod</td>
    83.         <td>Цена</td>
    84.         <td>Описание</td>
    85.         <td>Удаление</td>
    86.         <td>Редактирование</td>
    87.     </tr>
    88.     <?php
    89.     $sql = mysqli_query($link, 'SELECT `ID`, `Name`, `Cod`,`Price`,`description`  FROM `products`');
    90.     while ($result = mysqli_fetch_array($sql)) {
    91.         echo '<tr>' .
    92.             "<td>{$result['ID']}</td>" .
    93.             "<td>{$result['Name']}</td>" .
    94.             "<td>{$result['Cod']}</td>" .
    95.             "<td>{$result['description']}</td>" .
    96.             "<td>{$result['Price']} грн</td>" .
    97.             "<td><a href='?del_id={$result['ID']}'>Удалить</a></td>" .
    98.             "<td><a href='?red_id={$result['ID']}'>Изменить</a></td>" .
    99.             '</tr>';
    100.     }
    101.     ?>
    102. </table>
    103. </body>
    104. </html>
    не вижу ошибки в 24 строке
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Я там в прошлый чуток излишка написал. У тебя ранее была ф-ция против инъекций.
     
  8. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    @jpc, ну у нас интерпретатор и субд в головах не установлен. Какую ошибку пишет?
     
  9. jpc

    jpc Зэк
    [ БАН ]

    С нами с:
    30 июн 2019
    Сообщения:
    128
    Симпатии:
    0
    все работает