Следващото id ?

kulov

Registered
Трябва ми да взема ид-то на потребителя който се регистрира сега.. какво имам в предвид ;d Значи един потребител се регистрира в сайта ми, след като се изпрати заявка към базата данни и се добави информацията за него в дб-то ми трябва да взема id-то под което той е записан в базата данни, но без страницата да се е рефрешнала и кода да е разбрал, че има още един запис..
 
А при положение, че заявката не е една, смисъл те са доста заявки надолу, функцията не може да разбере за кое id точно става въпрос, предположих, че като аргумен, може да се зададе точно за коя заявка да става дума, но пак нестава..
 
kulov каза:
А при положение, че заявката не е една, смисъл те са доста заявки надолу, функцията не може да разбере за кое id точно става въпрос, предположих, че като аргумен, може да се зададе точно за коя заявка да става дума, но пак нестава..
А неможе ли да вземеш последното регистрирано ID и да го увеличиш с 1 ?
примерно:
Код:
<?php
$i = '50';
$i++;
echo ''.$i.'';
?>
 
Ами ще трябва да направиш друг начин на записване на id-тата, или просто ще трябва след рефреша да направиш това, което искаш.
 
GodFather2 каза:
kulov каза:
А при положение, че заявката не е една, смисъл те са доста заявки надолу, функцията не може да разбере за кое id точно става въпрос, предположих, че като аргумен, може да се зададе точно за коя заявка да става дума, но пак нестава..
А неможе ли да вземеш последното регистрирано ID и да го увеличиш с 1 ?
примерно:
Код:
<?php
$i = '50';
$i++;
echo ''.$i.'';
?>

А замислял ли си се, че ако изтрия нещо ръчно от базата данни, тоест направо от phpmyadmin-а, примерно имам 5 записа,
id-1
id-2
id-3
id-4
id-5

решава да изтрия id-5, така ще останат само до 4, но следващото добавено ид, няма да е 5 ами ще е 6, макар, че 5 не съществува, така ще са
1-2-3-4-6.. ако съм на id-4 и съм изтрил последното или нещо подобно дали няма да се бъгяса с този код..
 
kulov каза:
GodFather2 каза:
kulov каза:
А при положение, че заявката не е една, смисъл те са доста заявки надолу, функцията не може да разбере за кое id точно става въпрос, предположих, че като аргумен, може да се зададе точно за коя заявка да става дума, но пак нестава..
А неможе ли да вземеш последното регистрирано ID и да го увеличиш с 1 ?
примерно:
Код:
<?php
$i = '50';
$i++;
echo ''.$i.'';
?>

А замислял ли си се, че ако изтрия нещо ръчно от базата данни, тоест направо от phpmyadmin-а, примерно имам 5 записа,
id-1
id-2
id-3
id-4
id-5

решава да изтрия id-5, така ще останат само до 4, но следващото добавено ид, няма да е 5 ами ще е 6, макар, че 5 не съществува, така ще са
1-2-3-4-6.. ако съм на id-4 и съм изтрил последното или нещо подобно дали няма да се бъгяса с този код..
Ами ще го направиш при запис на ID да се съобразява с това какво е последното ID. Ако е 4 да го прави 5 а не 6
или това което искаш да направиш ще го правиш не с ID ами с друго поле от таблицата която ще е примерно 'usrID' и там ще се записват подред дано си ме разбрал
 
или пък с една заявка примерно
mysql_query("SELECT * FROM `users` ORDER BY `id` DECS LIMIT 1")or die(mysql_error());

като сложиш innerHTML или нещо с js за без рефреш... виж гугъла... :idea:
 
Ами ако записваш някъде в някакъв файл вече съществуващите ID-та и с някакъв cron скрипт да проверяваш в някакъв интервал време дали ID-то съществува и съответно да си изпълниш това, което ти трябва?

Като се замисля идеята май е тъпа, щото ще бави доста (май, май :D)
 
IzKuFeLiQqQqQ каза:
или пък с една заявка примерно
mysql_query("SELECT * FROM `users` ORDER BY `id` DECS LIMIT 1")or die(mysql_error());

като сложиш innerHTML или нещо с js за без рефреш... виж гугъла... :idea:

Мисля, че това е добро решение.

Проблем е ако се регистрират двама (или повече) потребителя едновременно. Не знам каква е точно идеята.

Аз бих го направил така:

... INSERT INTO DB NEW USER .... (MySQL заявката с която го регистрираш)

$_SESSION['NewUserID'] = mysql_insert_id();

И това вече го използваш където ти трябва.
 
Не мога да пиша на всеки по отделно.. прекалено много усложнявате цялата работа, и по лесни начини трябва да има.. ще ползвам jquery че това че унова.. Съобразяването с всички id-та тоест ако последното ми ид в дб-то е 2 а това което трябва да се запише е 15, но аз съм написал код, който взима последното id и го инкрементира ще рационализира един вид прекалено много.. самата идея не ми харесва, в последствие това може да доведе до грешки и тем подобни.. Идеята всичко да става след рефреш е най-удачна но много усложнявам нещата.. трябва да се пишат куп проверки да се проверя къде съм бил досега и ако съм бил в страницата за регистрация и тем подобни да проверявам последното регистрирано id.. но и тук може да се създадът грешки, примерно ако се регистрират няколко потребителя едновременно, в едно и също време.. трябва да има някакав по-упростен начин.. немога да разбера защо mysql_insert_id не става, в php.net даже има написано пример с указване на точна заявка..
 
@madmax3 едва ли ще тръгнат да се регват няколко човека едновременно....

@kulov какво трябва точно да ти се появява след като се регистрира за какво ти е това id обясни малко ...

бтв няма ли някаква функция да извежда ид-то под което е направен даден запис
тоест нещо като
submit...
$query=....
$id=get_query_id или там ако има функция...

или тая функция mysql_insert_id точно такава :idea: :idea:
 
Братле ако се впусна да ти обеснявам точно за какво е надали ще ме разбереш.. Ще се помуча простичко да го обесня.. Пиша си CMS система.. да нещо като joomla се има в предвид, така всичките панели са динамични, като тези панели могат да се мърдат насам натам и съответно да се затварят и тем подобни.. Тези всичките неща се записват за даденият логнат потребител в една таблица, като се записва ид-то на панела и това дали е затворен или не, като са подредени в този ред, в който трябва да излязат.. Ето с това е свързано това id.. ;d Трябва да създам запис за регистрирания потребител, като в този запис се указват панелите, но трябва да укажа и id-то на потребителя към който указвам тези неща.
 
Еми какъв ти е проблема. Когато записваш в едната таблица ID-то го записвай и в другата таблица. Какво като триеш ID? Ти триеш това ID, обаче mysql не се влияе от това, той си продължава подред номерата + това, когато триеш запис, ти го триеш и от двете таблици. Нещо не мога да разбера какво не е наред при толкова просто нещо.

Ти за таблицата с менютата трябва да имаш някакви настройки по подразбиране.
 
Така гледай сега
last_registered_user.php
Код:
<?php
$sql = "SELECT MAX(id) as mid FROM users;";
$row = mysql_fetch_array(mysql_query($sql));
echo $row['mid'];
?>

javascript & jquery code
Код:
var lastID;
$.get("last_registered_user.php", null, function(a) {
  lastID = a;
}
Викаш си аякса когато искаш и винаги имаш последното ID, ако искаш да го направиш за конректния юзър, то си запази след регистрация/логин в бисквитка ид-то му, бисквитката винаги можеш да я четеш от джаваскрипт.[/code]
 
@Kulov, прегледай си хубаво кода, защото този пример работи 100%
gamena007 каза:
$res = mysql_query("INSERT....");
$new_id = mysql_insert_id();

и сега в $new_id имаш стойността на последното добавено id
 

Back
Горе