За последние 24 часа нас посетили 18075 программистов и 1599 роботов. Сейчас ищут 893 программиста ...

Как запросить у базы данных нужную строку ?

Тема в разделе "PHP для новичков", создана пользователем Loks, 2 апр 2021.

  1. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0
    Заработало, благодарю.

    Теперь осталось разобраться как таким же образом записывать данные в определенные строки, не порекомендуете подходящею документацию ?
    --- Добавлено ---

    Спасибо все заработало.

    Я как можно заметить плохо разбираюсь в php поэтому работаю по документации.

    Теперь осталось разобраться как таким же образом записывать в определенные ячейки данные, не порекомендуете документацию ?
     
  2. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    Спокойствие. Рождается новый программист. Не всё гладко конечно.
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    - mysql update
    - php подготовленные (подготавливаемые) запросы.
    --- Добавлено ---
    Небольшие порции данных можно писать и обычными запросами, предварительно провалидировав и/или проэкранировав данные.
     
  4. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0

    Вот я нашёл пример, я правильно понимаю id это id пользователя у которого измениться имя на Doe

    $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

    if ($conn->query($sql) === TRUE) {
    echo"Record updated successfully";
    } else {
    echo"Error updating record: " . $conn->error;
    }

    $conn->close();
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Это лишнее: === TRUE
     
  6. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0
    А как правильно заменить имя Doe на интересующие меня так же запросом через post ?
    --- Добавлено ---
    Я хоть в правильном направление двигаюсь ?


    $id = 0;
    if(isset($_POST['id']))
    {
    $id = (int)$_POST['id']; //только для полей с числовыми значениями, для строк по-другому
    }
    $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=$id ";

    if ($conn->query($sql)) {
    echo "Record updated successfully";
    } else {
    echo "Error updating record: " . $conn->error;
    }

    $conn->close();
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Yes. И нефиг спрашивать такие элементарные вещи. Возьми, да проверь. Можно в той же phpMyAdmin для наглядности.
    --- Добавлено ---
    Так ХЗ, куда вы двигаетесь :)
    --- Добавлено ---
    Тема про другое ;)
     
  8. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0


    А как правильно заменить имя Doe на интересующие меня так же запросом через post ?
    через bind_param или можно как то еще?
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Вообще существование записи можно проверять предварительным SELECT'ом по id (классика – это брать id из адреса, например из GET-параметра, но в общем-то можно и из POST-параметра). А имя записываете тоже через переменную с учетом того, что я выше написал (подготовленные запросы, валидация, экранирование).
    --- Добавлено ---
    Проверку ошибки после UPDATE'а в любом случае оставляете! А предварительный SELECT нужен на предмет выдачи 404-ой.
     
  10. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0

    Ну тут просто такое дело если я правильно понял.
    Это код не для сайта а для приложения поэтому все работает через POST запросы.
     
  11. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Бред. Используемые методы не от этого зависят.
     
  12. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0
    Ну эт значит я не понял )
     
  13. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    И я вам писал про GET-параметр POST-запроса ;) Странно, но реально :D
    --- Добавлено ---
    Можно делать, как я показывал, т.е. передавать id прямо в пути: /users/1 ;)
    --- Добавлено ---
    GET /users/1 – получить данные пользователя для формы и т.п.
    POST /users/1 – обновить данные пользователя.
    --- Добавлено ---
    Для «приложений» можно использовать и расширенный набор методов, например еще PUT и PATCH ;)

    POST в этом случае обычно используется для создания новой записи, а не для обновления.
     
  14. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0

    Спасибо получилось )
     
  15. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0

    Получилось но как видно не полностью $login = $_POST['user_email']; может принять и изменить только цифровые значения как сделать так что бы можно было вписывать буквы а не только цифры?

    $login = $_POST['user_email'];

    $id = 0;
    if(isset($_POST['id']))
    {
    $id = (int)$_POST['id']; //только для полей с числовыми значениями, для строк по-другому
    }
    $sql = "UPDATE `pff08_users` SET display_name=$login WHERE ID=$id ";


    if ($conn->query($sql)) {
    echo "Record updated successfully";
    } else {
    echo "Error updating record: " . $conn->error;
    }

    $conn->close();
     
  16. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    Задача всех этих манипуляций с приведением типа полученной строки к типу INTEGER - исключить внедрение в SQL зловредного содержимого.
    Без понимания для чего это нужно и как работает, переходить к передаче строковых значений из пользовательского ввода в базу рано.
    Почитать можно по ссылке
    https://www.php.net/manual/ru/security.database.php
    Там есть и примеры.
     
  17. Loks

    Loks Новичок

    С нами с:
    31 мар 2021
    Сообщения:
    36
    Симпатии:
    0
    ААААААААААААА я кавычки просто не поставил (
     
  18. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    Ну-ну
     
  19. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Спокойствие. Рождается новый б/кодер :D А чего вы, собственно, хотели? :)
    --- Добавлено ---
    По-моему, все было сразу понятно.