За последние 24 часа нас посетили 42592 программиста и 1814 роботов. Сейчас ищут 895 программистов ...

Получение id при добавлении данных в таблицу

Тема в разделе "PHP для новичков", создана пользователем Jazz12, 3 окт 2017.

  1. Jazz12

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

    С нами с:
    26 фев 2009
    Сообщения:
    15
    Симпатии:
    1
    Добрый день.

    Код (Text):
    1.  
    2. $result = mysql_query ("INSERT INTO users (log,login,mail,password) VALUES('$log','$login','$mail','$password')");
    Таким образом я заношу в таблицу данные, а ид создается автоматом.
    Как поместить ид из созданой строки в переменную?

    Пробывал вот так
    Код (Text):
    1. $result3 = mysql_query("SELECT LAST_INSERT_ID()");
    2. $img = $result3;
    3. echo $img;
    так
    Код (Text):
    1. $result = mysql_query("SELECT id FROM users WHERE ltablename ORDER BY id DESC LIMIT 1",$db);
    и даже так
    Код (Text):
    1. $result3 = mysql_query("SELECT max(id) FROM users");
    Но результата так и не вышло(
    Заранее спасибо за помощь
     
    #1 Jazz12, 3 окт 2017
    Последнее редактирование: 3 окт 2017
  2. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    https://php.ru/manual/mysqli.insert-id.html
    Вот здесь почитайте и будем Вам + в карму

    Перестаньте использоваться не объектную модель общения с sql
     
    Jazz12 нравится это.
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    я вот тоже хочу процедурный стиль юзать, почему ты мне запрещаешь, но не глаголишь использовать mysqli_* место mysql_*?
     
  4. LeoPro

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

    С нами с:
    29 мар 2017
    Сообщения:
    14
    Симпатии:
    5
    PHP:
    1. <?php
    2. $table= "id_value";
    3. $link= mysqli_connect(DB_HOST, DB_LOGIN, DB_PASSWORD, DB_NAME);
    4. function firstFN($link, $table, $text)
    5. {
    6.    $sql = "INSERT INTO $table(`text`) VALUES('$text')";
    7.     if (!mysqli_query($link, $sql)) {
    8.         return false;
    9.     } else {
    10.         $id = mysqli_insert_id($link);
    11.         return $id;
    12.     }
    13. }
    14. if ($_SERVER["REQUEST_METHOD"] == "POST"){
    15.     $text = $_POST["text"];
    16.     $data = firstFN($link, $table, $text);
    17.     if(!$data){
    18.         echo "Ошибка в выводе id";
    19.     }
    20.     else echo "Всё окей)";
    21.  
    22. }
    23. ?>
    HTML:
    1. <!doctype html>
    2.     <meta charset="UTF-8">
    3.     <title>FirstFN</title>
    4. </head>
    5. <form action="/" method="post">
    6.     <p>Введите текст: <input type="text" name="text"><input type="submit"></p>
    7.     <h3>id-последней записи: <?=$data?></h3>
    8. </form>
    9. </body>
    10. </html>
    Я вот так делал)
     
    #4 LeoPro, 3 окт 2017
    Последнее редактирование: 3 окт 2017
    Jazz12, [vs] и MouseZver нравится это.
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    немного говняненько, логика верна
     
  6. LeoPro

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

    С нами с:
    29 мар 2017
    Сообщения:
    14
    Симпатии:
    5
    Ты про название функции?)
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
  8. PhpStorm

    PhpStorm Новичок

    С нами с:
    21 сен 2017
    Сообщения:
    65
    Симпатии:
    11
    Адрес:
    JetBrains
  9. Jazz12

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

    С нами с:
    26 фев 2009
    Сообщения:
    15
    Симпатии:
    1
    @ZlobnyKolob @PhpStorm очень интересные ссылки.
    Спасибо за ответы, все сделал по примеру @LeoPro.
     
    LeoPro нравится это.