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

Добавление записей

Тема в разделе "PHP для новичков", создана пользователем eXtreme, 17 фев 2011.

  1. eXtreme

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

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    PHP:
    1. $result_c = mysql_query("SELECT id FROM users");
    2.     $i=mysql_num_rows($result_c);
    3.     $id=$i+1;
    4.     $add="INSERT INTO users VALUES($id,'$surname','$name','$patronymic')";
    5.     $insert=mysql_query($add);
    6.     if (!$insert)
    7.     {
    8.     echo 'Технические проблемы, не добавить';
    9.     }
    10.     else
    11.     {
    12.     echo "Пользователь добавлен";
    13.     }
    14.     mysql_close($link);
    15.     }
    16. ?>
    17.  

    В общем вот часть кода. Она работает. но не совершенно) В общем если добавлять записи через поля формы и нажимая кнопку добавить, то записи добавляются. ид возрастают. то есть 1, 2, 3, 4, 5, и т.д. но вот незадача. Если удалить запись с ид 2 например. то после этого записи не добавляются. Как сделать чтобы при добавлении новая запись заполнила свободный ид? или 2, или дальше 5. не принципиально. запутался.
     
  2. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    а у тебя id в таблице БД автоинкремент? С виду по коду, нет. Сделай его автоинкрементом и тогда проблема отпадет
     
  3. eXtreme

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

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    Да, поле авто инкремент. я же написал что записи добавляются с возрастающи ид=)

    PHP:
    1. $selectdb=mysql_select_db($db_name);
    2.    if(!$selectdb)
    3.    {
    4.    echo "We can't select database!";
    5.    exit;
    6.    }
    7.     else
    8.    {
    9.     $add="INSERT INTO users VALUES('','$surname','$name','$patronymic')";
    10.     $insert=mysql_query($add);
    11.     if (!$insert)
    12.     {
    13.     echo 'Технические проблемы, не добавить';
    14.     }
    15.     else
    16.     {
    17.     echo "Пользователь добавлен";
    18.     }
    19.     mysql_close($link);
    20.     }
    вопрос решен. просто я заного начислял ид. и получалось что толи он занят, то ли еще что. Вопрос другой теперь, чисто ради своего интереса. Какие параметры поставить у поля ид, чтобы тот при добавлении записи брал первый свободный ид? вроде читал где то такое есть, как реализовать? спасибо. Допустим добавлено 5 записей. удалены 2 и 3. и при добавлении новой запись заняла ид 2, потом ид 3, и потом далее 6, 7 и т.д.. Спасибо
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    eXtreme
    не делай так и забудь об этом и живи счастливо. хочешь номерки? морочься с номерками. А праймари индекс автоинкремент id - трогать не надо. Никогда. Оно не для людей.
     
  5. eXtreme

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

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    Ладно. Спасибо.
     
  6. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    eXtreme
    закрепим примером:
    у тебя есть вася с id=2
    у тебя есть сообщение от васи (который с id=2)
    после чего вася в сердцах от неразделенной любви к тебе самоудаляется.
    после чего приходит петя, регается и получает свободный id=2

    и сообщение от васи превращается в сообщение от пети, что не так.


    id - это билет в один конец.
     
  7. eXtreme

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

    С нами с:
    29 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    ну то есть его один раз использовали и все. понятно.