Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где в таблице хранится последний ID записи? 
:(
    Опции темы
vlad275
Дата 27.11.2009, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 20.3.2008

Репутация: нет
Всего: -3



Где в таблице хранится последний ID записи?
Если удалить последних несколько записей, то SQL запрос
SELECT MAX(intID) AS maxid FROM tCandidates 
вернет не тот ID который был использован в последний раз, а максимальный из не стертых :-(


SELECT @AUTO_INCREMENT  FROM tCandidates  
возвращает NULL


Это сообщение отредактировал(а) vlad275 - 27.11.2009, 13:11


--------------------
Кто, как и зачем запустил этот механизм уничтожения России:
http://rutube.ru/tracks/54915.html?v=e74a9...c7e5d24da5656d8
PM MAIL   Вверх
DimW
Дата 27.11.2009, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(vlad275 @  27.11.2009,  13:03 Найти цитируемый пост)
Если удалить последних несколько записей

скрипт покажите.

запись это логическое представление физического ее хранения. поэтому серве БД вправе сам решать куда физически сохранить данне о записи, а логическое представление порядка ее извлечения никоем образом не связано с хрогологией записи данных в таблицу.

по этому ответ, где попало!  
PM MAIL ICQ   Вверх
skyboy
Дата 27.11.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(vlad275 @  27.11.2009,  12:03 Найти цитируемый пост)
Где в таблице хранится последний ID записи?

а для чего тебе? получить количество элементов - select count(id) from ...
значение счетчика тебе в работе надо без вставки элемента? интересно, зачем?
можно получить это значение где-то через information_schema. то ли таблица tables, то ли в таблице columns. не помню.

PM MAIL   Вверх
vlad275
Дата 27.11.2009, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 20.3.2008

Репутация: нет
Всего: -3



При закачке файла ему присваивается имя состоящие из ID нового пользователя и строки ".jpg"
Допустим последний зарегистрированный пользователь был под ID 70, новый пользователь будет с ID 71 и его фотография будет иметь название 71.jpg
Если я сотру десять последних записей из таблицы, с 60 по 71 , то следующий зарегистрировавшийся пользователь будет с ID 72, а так как MAX(intID) будет 59, то имя файла будет 60.jpg

Добавлено @ 14:02
Код

<skip>
                        //Узнать максимальный ID в таблице
                        if ($result = mysqli_query($link, "SELECT MAX(intID) AS maxid FROM tCandidates;", MYSQLI_USE_RESULT)) {
                            while($obj = $result->fetch_object()){
                                $myvar_maxid=$obj->maxid;
                                
                            }
                        }
                        $myvar_maxid=$myvar_maxid+1;
                        $myvar_varcharPicture=$myvar_maxid.".jpg";
                        
                        echo "myvar_maxid".$myvar_maxid."br />";

                        
                        mysqli_query($link, "SET NAMES cp1251", MYSQLI_USE_RESULT);
                       
                    if ($_POST['varcharName']<>""){
                       $myvar_varcharStatus = $_POST['varcharStatus'] ;
                       $myvar_dateProlongation = $_POST['dateProlongation'] ;
                       $myvar_dateProlongation=date('y.m.d',strtotime($myvar_dateProlongation));

                       $myvar_timestampInsert = $_POST['timestampInsert'] ;
                       $myvar_timestampInsert=date('y.m.d',strtotime($myvar_timestampInsert));

                       $myvar_intBirthday = $_POST['intBirthday'] ;
                       $myvar_intBirthmonth = $_POST['intBirthmonth'] ;
                       $myvar_intBirthyear = $_POST['intBirthyear'] ;
                       $myvar_varcharName = $_POST['varcharName'] ;
                       $myvar_varcharSecondname = $_POST['varcharSecondname'];
                       $myvar_varcharFamilyname = $_POST['varcharFamilyname'];
                       $myvar_varcharGender = $_POST['varcharGender']; 
                       $myvar_varcharSpousefullname = $_POST['varcharSpousefullname'];
                       $myvar_varcharButler = $_POST['varcharButler'] ;
                       $myvar_varcharGardener = $_POST['varcharGardener'] ;

                       $myvar_varcharNanny = $_POST['varcharNanny'] ;
                       $myvar_varcharGoverness = $_POST['varcharGoverness'] ;
                       $myvar_varcharCook = $_POST['varcharCook'] ;
                       $myvar_varcharHousemaid = $_POST['varcharHousemaid'] ;
                       $myvar_varcharLogopedist = $_POST['varcharLogopedist'] ;
                       $myvar_varcharTutor = $_POST['varcharTutor'] ;
                       $myvar_varcharNurse = $_POST['varcharNurse'] ;
                       $myvar_varcharDriver = $_POST['varcharDriver'] ;
                       $myvar_varcharCouple = $_POST['varcharCouple'] ;
                       $myvar_varcharOther = $_POST['varcharOther'] ;
                       $myvar_varcharPassportSeries = $_POST['varcharPassportSeries'] ;
                       $myvar_varcharPassportWhenWho = $_POST['varcharPassportWhenWho'] ;
                       $myvar_varcharNationality = $_POST['varcharNationality'] ;
                       $myvar_varcharPassportExternal = $_POST['varcharPassportExternal'] ;
                       $myvar_varcharMarriage = $_POST['varcharMarriage'] ;
                       $myvar_intChildren = $_POST['intChildren'] ;
                       $myvar_varcharEducationPedagogicalMiddle = $_POST['varcharEducationPedagogicalMiddle'] ;
                       $myvar_varcharEducationPedagogicalHigher = $_POST['varcharEducationPedagogicalHigher'] ;
                       $myvar_varcharEducationMedicalMiddle = $_POST['varcharEducationMedicalMiddle'] ;
                       $myvar_varcharEducationMedicalHigher = $_POST['varcharEducationMedicalHigher'] ;
                       $myvar_varcharEducationOtherHigher = $_POST['varcharEducationOtherHigher'] ;
                       $myvar_varcharGraduatedWhatWhen = $_POST['varcharGraduatedWhatWhen'] ;
                       $myvar_varcharMethods = $_POST['varcharMethods'] ;
                       $myvar_varcharLanguageEnglish = $_POST['varcharLanguageEnglish'] ;
                       $myvar_varcharLanguageFrench = $_POST['varcharLanguageFrench'] ;
                       $myvar_varcharLanguageGerman = $_POST['varcharLanguageGerman'] ;
                       $myvar_varcharLanguageSpanish = $_POST['varcharLanguageSpanish'] ;
                       $myvar_varcharLanguageOther = $_POST['varcharLanguageOther'] ;
                       $myvar_varcharWorkExperience = $_POST['varcharWorkExperience'] ;
                       $myvar_varcharWorkTheLast = $_POST['varcharWorkTheLast'] ;

                       $myvar_varcharWorkReferences  = $_POST['varcharWorkReferences'] ;
                       $myvar_intPreferenceMinAge = $_POST['intPreferenceMinAge'] ;
                       $myvar_intPreferenceMaxAge = $_POST['intPreferenceMaxAge'] ;
                       $myvar_varcharCuisine = $_POST['varcharCuisine'] ;
                       $myvar_varcharDrivingLicence = $_POST['varcharDrivingLicence'] ;
                       $myvar_varcharDrivingExperience = $_POST['varcharDrivingExperience'] ;
                       $myvar_varcharAllergy = $_POST['varcharAllergy'] ;
                       $myvar_varcharPets = $_POST['varcharPets'] ;
                       $myvar_varcharHobby = $_POST['varcharHobby'] ;
                       $myvar_varcharRegistration = $_POST['varcharRegistration'] ;
                       
                       
                       $myvar_varcharWorkType = $_POST['varcharWorkType'] ;
                       $myvar_dateWorkStart = $_POST['dateWorkStart'] ;
                       $myvar_dateWorkStart=date('y.m.d',strtotime($myvar_dateWorkStart));

                       $myvar_intLastSalary = $_POST['intLastSalary'] ;
                       $myvar_intSalary = $_POST['intSalary'] ;
                       $myvar_varcharSupplements = $_POST['varcharSupplements'];
                       //Первоначальное название файла заменяется на id+".jpg" выше в коде.
                       //$myvar_varcharPicture = $_FILES["file"]["name"];
                       
                        printf ("Файл: $myvar_varcharPicture<br />");
                        printf ("Имя соискателя: $myvar_varcharName<br />");
                        
                       

                       if ((($_FILES["file"]["type"] == "image/gif")
                    || ($_FILES["file"]["type"] == "image/jpeg")
                    || ($_FILES["file"]["type"] == "image/pjpeg"))
                    && ($_FILES["file"]["size"] < 20000))
                      {
                      if ($_FILES["file"]["error"] > 0)
                        {
                        echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
                        }
                      else
                        {
                        echo "Upload: " . $_FILES["file"]["name"] . "<br />";
                        echo "Type: " . $_FILES["file"]["type"] . "<br />";
                        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
                        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

                        if (file_exists("upload/" . $_FILES["file"]["name"]))
                          {
                          echo $_FILES["file"]["name"] . " already exists. ";
                          }
                        else
                          {
                          move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $myvar_varcharPicture);
                          echo "Stored in: " . "upload/" . $myvar_varcharPicture;
                          }
                        }
                      }
                    else
                      {
                      echo "Invalid file";
                      }
                      
                      
                      
                      
                      
                      
                      
                      
                    //Получение бинарного содержимого фотографии
                        //If ($myvar_varcharPicture<>""){
                          // $bin = file_get_contents("upload/$myvar_varcharPicture");
                           ////$f=fopen("upload/$myvar_varcharPicture","rb"); // имя файла или картинки -- открыли файл на чтение
                           ////$bin=fread($f,filesize("upload/$myvar_varcharPicture")); // считали файл в переменную
                           ////fclose($f); // закрыли файл, можно опустить

                            //$bin=addslashes($bin);
                        //}
                        
                       $sql="INSERT INTO tCandidates (
                       varcharStatus,
                       dateProlongation,
                       timestampInsert,
                       intBirthday,
                       intBirthmonth,
                       intBirthyear,
                       varcharName,
                       varcharSecondname,
                       varcharFamilyname,
                       varcharGender,
                       varcharSpousefullname,
                       varcharButler,
                       varcharGardener,
                       varcharNanny,
                       varcharGoverness,
                       varcharCook,
                       varcharHousemaid,
                       varcharLogopedist,
                       varcharTutor,
                       varcharNurse,
                       varcharDriver,
                       varcharCouple,
                       varcharOther,
                       varcharPassportSeries,
                       varcharPassportWhenWho,
                       varcharNationality,
                       varcharPassportExternal,
                       varcharMarriage,
                       intChildren,
                       varcharEducationPedagogicalMiddle,
                       varcharEducationPedagogicalHigher,
                       varcharEducationMedicalMiddle,
                       varcharEducationMedicalHigher,
                       varcharEducationOtherHigher,
                       varcharGraduatedWhatWhen,
                       varcharMethods,
                       varcharLanguageEnglish,
                       varcharLanguageFrench,
                       varcharLanguageGerman,
                       varcharLanguageSpanish,
                       varcharLanguageOther,
                       varcharWorkExperience,
                       varcharWorkTheLast,
                       varcharWorkReferences,
                       intPreferenceMinAge,
                       intPreferenceMaxAge,
                       varcharCuisine,
                       varcharDrivingLicence,
                       varcharDrivingExperience,
                       varcharAllergy,
                       varcharPets,
                       varcharHobby,
                       varcharRegistration,
                       varcharWorkType,
                       dateWorkStart,
                       intLastSalary,
                       intSalary,
                       varcharSupplements,
                       varcharPicture,
                       mediumblobPicture) VALUES(
                       '$myvar_varcharStatus',
                       '$myvar_dateProlongation',
                       '$myvar_timestampInsert',
                       '$myvar_intBirthday',
                       '$myvar_intBirthmonth',
                       '$myvar_intBirthyear',
                       '$myvar_varcharName',
                       '$myvar_varcharSecondname',
                       '$myvar_varcharFamilyname',
                       '$myvar_varcharGender',
                       '$myvar_varcharSpousefullname',
                       '$myvar_varcharButler',
                       '$myvar_varcharGardener',
                       '$myvar_varcharNanny',
                       '$myvar_varcharGoverness',
                       '$myvar_varcharCook',
                       '$myvar_varcharHousemaid',
                       '$myvar_varcharLogopedist',
                       '$myvar_varcharTutor',
                       '$myvar_varcharNurse',
                       '$myvar_varcharDriver',
                       '$myvar_varcharCouple',
                       '$myvar_varcharOther',
                       '$myvar_varcharPassportSeries',
                       '$myvar_varcharPassportWhenWho',
                       '$myvar_varcharNationality',
                       '$myvar_varcharPassportExternal',
                       '$myvar_varcharMarriage',
                       '$myvar_intChildren',
                       '$myvar_varcharEducationPedagogicalMiddle',
                       '$myvar_varcharEducationPedagogicalHigher',
                       '$myvar_varcharEducationMedicalMiddle',
                       '$myvar_varcharEducationMedicalHigher',
                       '$myvar_varcharEducationOtherHigher',
                       '$myvar_varcharGraduatedWhatWhen',
                       '$myvar_varcharMethods',
                       '$myvar_varcharLanguageEnglish',
                       '$myvar_varcharLanguageFrench',
                       '$myvar_varcharLanguageGerman',
                       '$myvar_varcharLanguageSpanish',
                       '$myvar_varcharLanguageOther',
                       '$myvar_varcharWorkExperience',
                       '$myvar_varcharWorkTheLast',
                       '$myvar_varcharWorkReferences',
                       '$myvar_intPreferenceMinAge',
                       '$myvar_intPreferenceMaxAge',
                       '$myvar_varcharCuisine',
                       '$myvar_varcharDrivingLicence',
                       '$myvar_varcharDrivingExperience',
                       '$myvar_varcharAllergy',
                       '$myvar_varcharPets',
                       '$myvar_varcharHobby',
                       '$myvar_varcharRegistration',
                       '$myvar_varcharWorkType',
                       '$myvar_dateWorkStart',
                       '$myvar_intLastSalary',
                        '$myvar_intSalary',
                       '$myvar_varcharSupplements',
                       '$myvar_varcharPicture',
                       '$bin')";

<skip>


Это сообщение отредактировал(а) vlad275 - 27.11.2009, 14:04


--------------------
Кто, как и зачем запустил этот механизм уничтожения России:
http://rutube.ru/tracks/54915.html?v=e74a9...c7e5d24da5656d8
PM MAIL   Вверх
DimW
Дата 27.11.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(DimW @  27.11.2009,  13:25 Найти цитируемый пост)
по этому ответ, где попало!

извиняюсь, не так понял формулировку вопроса.
PM MAIL ICQ   Вверх
Akina
Дата 27.11.2009, 15:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(vlad275 @  27.11.2009,  14:59 Найти цитируемый пост)
Допустим последний зарегистрированный пользователь был под ID 70, новый пользователь будет с ID 71 и его фотография будет иметь название 71.jpg
Если я сотру десять последних записей из таблицы, с 60 по 71 , то следующий зарегистрировавшийся пользователь будет с ID 72, а так как MAX(intID) будет 59, то имя файла будет 60.jpg

Возможно, нижеприведённый код направит тебя в нужном направлении:
Код

mysql> create table test (
    -> id int auto_increment primary key,
    -> txt text,
    -> val integer
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test (txt) values ('aaa');
Query OK, 1 row affected (0.03 sec)

mysql> update test set val=last_insert_id() where id=last_insert_id();
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> insert into test (txt) values ('bbb');
Query OK, 1 row affected (0.03 sec)

mysql> update test set val=last_insert_id() where id=last_insert_id();
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> insert into test (txt) values ('ccc');
Query OK, 1 row affected (0.03 sec)

mysql> update test set val=last_insert_id() where id=last_insert_id();
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from test;
+----+------+------+
| id | txt  | val  |
+----+------+------+
|  4 | aaa  |    4 |
|  5 | bbb  |    5 |
|  6 | ccc  |    6 |
+----+------+------+
3 rows in set (0.01 sec)

mysql>


Добавлено через 1 минуту и 7 секунд
Два запроса вместо одного - это нестрашно, поверь мне...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
vlad275
Дата 27.11.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 20.3.2008

Репутация: нет
Всего: -3



Странно, но
SELECT last_insert_id() FROM `tCandidates` 
возвращает 0

:-(((


--------------------
Кто, как и зачем запустил этот механизм уничтожения России:
http://rutube.ru/tracks/54915.html?v=e74a9...c7e5d24da5656d8
PM MAIL   Вверх
bars80080
Дата 27.11.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



Цитата(vlad275 @  27.11.2009,  15:06 Найти цитируемый пост)
Странно, но
SELECT last_insert_id() FROM `tCandidates` 
возвращает 0

по-пробуйте 

Код

SELECT last_insert_id()

сразу после запроса insert
PM MAIL WWW   Вверх
Akina
Дата 27.11.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



А маны за нас пусть Пушкин читает?
last_insert_id() возвращает последний id, сгенерированный в данном Connection. И неважно, для какой таблицы. А если в данном соединении вставки с генерацией не производилось - возвращается ноль.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
vlad275
Дата 27.11.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 20.3.2008

Репутация: нет
Всего: -3



Отлично. Это подошло, только геморно, что придется еще и UPDATE вызывать
Код


INSERT INTO tCandidates( varcharStatus, dateProlongation, timestampInsert, intBirthday, intBirthmonth, intBirthyear, varcharName, varcharSecondname, varcharFamilyname, varcharGender, varcharSpousefullname, varcharButler, varcharGardener, varcharNanny, varcharGoverness, varcharCook, varcharHousemaid, varcharLogopedist, varcharTutor, varcharNurse, varcharDriver, varcharCouple, varcharOther, varcharPassportSeries, varcharPassportWhenWho, varcharNationality, varcharPassportExternal, varcharMarriage, intChildren, varcharEducationPedagogicalMiddle, varcharEducationPedagogicalHigher, varcharEducationMedicalMiddle, varcharEducationMedicalHigher, varcharEducationOtherHigher, varcharGraduatedWhatWhen, varcharMethods, varcharLanguageEnglish, varcharLanguageFrench, varcharLanguageGerman, varcharLanguageSpanish, varcharLanguageOther, varcharWorkExperience, varcharWorkTheLast, varcharWorkReferences, intPreferenceMinAge, intPreferenceMaxAge, varcharCuisine, varcharDrivingLicence, varcharDrivingExperience, varcharAllergy, varcharPets, varcharHobby, varcharRegistration, varcharWorkType, dateWorkStart, intLastSalary, intSalary, varcharSupplements, varcharPicture, mediumblobPicture )
VALUES (
'', '09.11.27', '09.11.27', '6', '5', '1978', 'Иванна', 'Ивановна', 'Иванова', 'F', 'Иван Иванович Иванов', '', '', 'on', '', '', '', '', '', '', '', '', '', '11 11 111111', 'ОВД \"Лефортово\" города Москвы', 'Русская', '', '', '0', 'on', '', '', '', '', 'ПТУ 11', '', '', '', '', '', '', '0', 'нет', 'нет', '1', '17', 'пельмени', 'нет', '0', 'нет', 'Хорошее', 'нет', 'временная', 'любой', '09.11.28', '0', '23000', 'Просит мало - подойдет', '78.jpg', ''
);

SELECT last_insert_id( ) ;



--------------------
Кто, как и зачем запустил этот механизм уничтожения России:
http://rutube.ru/tracks/54915.html?v=e74a9...c7e5d24da5656d8
PM MAIL   Вверх
Akina
Дата 30.11.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(vlad275 @  27.11.2009,  17:41 Найти цитируемый пост)
геморно, что придется еще и UPDATE вызывать

Напиши подпрограмму...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1024 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.