За последние 24 часа нас посетили 22690 программистов и 1211 роботов. Сейчас ищут 779 программистов ...

Помогите! Не могу получить данные с бд Mysql

Тема в разделе "PHP для новичков", создана пользователем best_and, 20 апр 2022.

Метки:
  1. best_and

    best_and Новичок

    С нами с:
    20 апр 2022
    Сообщения:
    1
    Симпатии:
    0
    Помогите, есть таблица со списком имен и номеров телефонов связанная с бд phpMyadmin, мне нужно создать форму для изменения данных в строках таблицы.

    index.php
    <body>
    <form action="vendor/create.php" method="POST">
    <h3>Добавить запись</h3>
    <p>ФИО</p>
    <input type="text" name = "name" placeholder="Введите ФИО">
    <p>Номер телефона</p>
    <textarea name = "phnumber" placeholder="Введите номер" cols="21" rows="3"></textarea><br>
    <button type="submit">Добавить</button>
    </form>

    <table class="table">
    <tr>
    <th>№</th>
    <th>id</th>
    <th>ФИО</th>
    <th>Номер телефона</th>
    </tr>

    <?php
    require_once 'config/connect.php';
    $users = mysqli_query($connect, "SELECT*FROM `users`");
    $users = mysqli_fetch_all($users);
    $i = 1;
    foreach ($users as $users) {
    ?>
    <tr>
    <td><?= $i++ ?></td>
    <td><?= $users[0] ?></td>
    <td><?= $users[1] ?></td>
    <td><?= $users[2] ?></td>
    <td><a href="update.php?id<?= $users[0] ?>">Изменить</a></td>
    </tr>
    <?php
    }
    ?>
    </table>


    update.php
    <?php

    require 'config/connect.php';

    $users_id = $_GET['id'];
    $users = mysqli_query($connect, "SELECT*FROM `users` WHERE `id` = '$users_id'");
    $users = mysqli_fetch_assoc($users);
    if (!$users) {
    die("КАКАЯ ТО ОШИБКА");
    }
    print_r($users);
    ?>

    <!DOCTYPE html>
    <html lang="ru">
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Изменить</title>
    </head>
    <body>
    <h3>Изменить строку</h3>
    <form action="" method="GET">
    <p>ФИО</p>
    <input type="text" name="name" value="<?= $users['name'] ?>">
    <p>Номер телефона</p>
    <textarea name="phnumber" cols="21" rows="3"><?= $users['phnumber'] ?></textarea><br>
    <button type="submit">Изменить</button>
    </form>
    </body>
    </html>


    по какой то причине выдает при выводе $users выдает ошибку.
    PS я начинающий разработчик так что не судите строго и заранее спасибо
     

    Вложения:

  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Проверяйте результаты подключения, выполнения запроса. Это вообще жесть:
    Выполнение запроса к БД лучше отделить от вывода.

    Непосредственно изменение нужно делать методом POST и соответственно разветвлять обработчик на показ формы/внесение изменений в БД.
    --- Добавлено ---
    В update.php вообще много жести, начиная с этого:
     
    #2 miketomlin, 22 апр 2022
    Последнее редактирование: 22 апр 2022
  3. antoniii

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

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Жесть! Одна переменная $users используется буквально для всего!
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Да, меня тоже сначала смутила команда
    и
    Но в общем-то перезаписывать объект по идее можно (т.е. в том числе должен вызываться деструктор, сразу или отложенно).
    --- Добавлено ---
    В таком случае даже на фишку для освобождения без лишних команд становится похоже.
    --- Добавлено ---
    Но в форыче это уже явно перебор.
    --- Добавлено ---
    Не «какая-то ошибка», а «нет такой записи» при условии, если бы вовремя проверили результат выполнения запроса, т.е. ф-ции mysqli_query().