За последние 24 часа нас посетили 5326 программистов и 684 робота. Сейчас ищет 221 программист ...

чпочему не работает

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

  1. jpc

    jpc Новичок

    С нами с:
    30 июн 2019
    Сообщения:
    69
    Симпатии:
    0
    PHP:
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4.     <meta charset="utf-8">
    5. </head>
    6. <body>
    7. <?php
    8. require_once 'connection1.php'; // подключаем скрипт
    9.  
    10. if(isset($_POST['name']) && isset($_POST['cod']) && isset($_POST['price']) && isset($_POST['description'])) {
    11.  
    12.     // подключаемся к серверу
    13.     $link = mysqli_connect($host, $user, $password, $database)
    14.     or die("Ошибка " . mysqli_error($link));
    15.  
    16.     // экранирования символов для mysql
    17.     $name = htmlentities(mysqli_real_escape_string($link, $_POST['name']));
    18.     $cod = htmlentities(mysqli_real_escape_string($link, $_POST['cod']));
    19.     $price = htmlentities(mysqli_real_escape_string($link, $_POST['price']));
    20.     $description = htmlentities(mysqli_real_escape_string($link, $_POST['description']));
    21.  
    22.     // создание строки запроса
    23.     $query = "INSERT INTO tovars VALUES(NULL, '$name','$cod','$price','$description')";
    24.  
    25.     // выполняем запрос
    26.     $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
    27.     if ($result) {
    28.         echo "<span style='color:blue;'>Данные добавлены</span>";
    29.     }
    30.     // закрываем подключение
    31.     mysqli_close($link);
    32.  
    33.     $query = "SELECT * FROM tovars";
    34.  
    35.     $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
    36.     if ($result) {
    37.         $rows = mysqli_num_rows($result); // количество полученных строк
    38.  
    39.         echo "<table><tr><th>Id</th><th>Название</th><th>Код</th><th>Цена</th><th>Описание</th><</tr>";
    40.         for ($i = 0; $i < $rows; ++$i) {
    41.             $row = mysqli_fetch_row($result);
    42.             echo "<tr>";
    43.             for ($j = 0; $j < 5; ++$j) echo "<td>$row[$j]</td>";
    44.             echo "</tr>";
    45.         }
    46.         echo "</table>";
    47.  
    48.         // очищаем результат
    49.         mysqli_free_result($result);
    50.         // закрываем подключение
    51.         mysqli_close($link);
    52.     }
    53. }
    54.  
    55. ?>
    56. <h2>Добавить новую модель</h2>
    57. <form method="POST">
    58.     <p>Назвние:<br>
    59.         <input type="text" name="name" /></p>
    60.     <p>Код:<br>
    61.         <input type="text" name="cod" /></p>
    62.      <p>Цена: <br>
    63.         <input type="text" name="price" /></p>
    64.     <p>Описание: <br>
    65.         <input type="text" name="description" /></p>
    66.     <input type="submit" value="Добавить товар">
    67. </form>
    68. </body>
    69. </html>
     
  2. yanuzay

    yanuzay Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    385
    Симпатии:
    40
    почему думаешь что не работает?
     
  3. jpc

    jpc Новичок

    С нами с:
    30 июн 2019
    Сообщения:
    69
    Симпатии:
    0
    потому что где-то ошибка
    --- Добавлено ---
    закрыл подключение
    --- Добавлено ---
    как добавить кнопки редактирование данных?
     
  4. yanuzay

    yanuzay Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    385
    Симпатии:
    40
    ок.
    в этой строке лишняя угловая скобка у закрывающего тега tr: echo"<table><tr><th>Id</th><th>Название</th><th>Код</th><th>Цена</th><th>Описание</th><</tr>";
     
  5. miketomlin

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

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    Где? Тебе в каждой теме писать, чтобы включал отображение ошибок и т.п.?

    P.S. Вся логика – отстой, поэтому даже вникать лень. Пару замечаний, чтобы уж совсем не быть голословным: попутал порядок вызова htmlentities/mysqli_real_escape_string, не сделал никакой защиты от SQL-инъекций (из-за чего может «сыпаться» текст запроса), не разделил POST-обработку и вывод (в частности вписал die внутри тэга body и т.п.).
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    5.584
    Симпатии:
    905
    Адрес:
    Лень
    PHP:
    1. <?php
    2.  
    3. declare ( strict_types = 1 );
    4.  
    5. error_reporting ( E_ALL );
    6.  
    7. require 'connection.php'; // подключаем скрипт
    8.  
    9. if ( getenv ( 'REQUEST_METHOD' ) == 'POST' )
    10. {
    11.     $inputs = filter_input_array ( INPUT_POST, array_fill_keys ( [
    12.         'name',
    13.         'cod',
    14.         'price',
    15.         'description' ], FILTER_DEFAILT ) );
    16.  
    17.     $e = [];
    18.  
    19.     if ( in_array ( $inputs, false ) )
    20.     {
    21.         $e[ 'error' ] = 'Заполните все данные';
    22.     }
    23.     else
    24.     {
    25.         $stmt = $mysqli -> prepare ( "INSERT INTO `tovars` VALUES ( ?,?,?,? );SELECT * FROM `tovars`" );
    26.  
    27.         $stmt -> bind_param ( "ssss", $inputs[ 'name' ], $inputs[ 'cod' ], $inputs[ 'price' ], $inputs[ 'description' ] );
    28.  
    29.         $stmt -> execute ();
    30.  
    31.         $stmt -> bind_result ( ...$result );
    32.  
    33.         $e[ 'table' ] = '<table><tr><td>Id</td><td>Название</td><td>Код</td><td>Цена</td><td>Описание</td></tr>';
    34.  
    35.         $i = 1;
    36.  
    37.         while ( $stmt -> fetch () )
    38.         {
    39.             if ( $i % 5 == 1 )
    40.             {
    41.                 $e[ 'table' ] .= '<tr><td>' . htmlentities ( implode ( '</td><td>', $result ) ) . '</td>';
    42.             }
    43.             elseif ( $i % 5 == 0 )
    44.             {
    45.                 $e[ 'table' ] .= '</tr><td>' . htmlentities ( implode ( '</td><td>', $result ) ) . '</td>';
    46.             }
    47.             else
    48.             {
    49.                 $e[ 'table' ] .= '<td>' . htmlentities ( implode ( '</td><td>', $result ) ) . '</td>';
    50.             }
    51.  
    52.             $i ++;
    53.         }
    54.  
    55.         $stmt -> close ();
    56.  
    57.         $e[ 'table' ] = $e[ 'table' ] . '</td></tr></table>';
    58.     }
    59. }
    60.  
    61. echo $e[ 'error' ] ?? $e[ 'table' ] ?? include 'html.php';
    62.  
    63. /*
    64.     include return
    65. *
    66. * <form method="POST">
    67.     <p>Назвние:<br>
    68.         <input type="text" name="name" /></p>
    69.     <p>Код:<br>
    70.         <input type="text" name="cod" /></p>
    71.      <p>Цена: <br>
    72.         <input type="text" name="price" /></p>
    73.     <p>Описание: <br>
    74.         <input type="text" name="description" /></p>
    75.     <input type="submit" value="Добавить товар">
    76. </form>
    77. */
     
  7. jpc

    jpc Новичок

    С нами с:
    30 июн 2019
    Сообщения:
    69
    Симпатии:
    0
    ого
    а как мне такому научиться?
     
  8. miketomlin

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

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    Перестать задавать тупые вопросы на форумах и начать учиться? Впрочем, я тебе это когда-то уже говорил. Толку ноль. Ты даже название темы на форуме норм. сформулировать не способен и даже описку исправить в тупом названии, прежде чем его запостить ;)
    --- Добавлено ---
    Собираешься всю жизнь так «чпо»каться? :)
     
  9. jpc

    jpc Новичок

    С нами с:
    30 июн 2019
    Сообщения:
    69
    Симпатии:
    0
    как добавить кнопку редактировать товар?
     
  10. jpc

    jpc Новичок

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