2013-07-30 2 views
0

Я работаю над приложением iOS, чтобы предоставить пользователям больше опций при покупке лицензии. Я в основном знаком с ObjC и xCode, поэтому я не знаю много PHP.Как получить последнее вставленное значение строки в PHP и добавить 1 к нему

Вот настройка таблицы MySql:

MySql table

Я пытаюсь получить rw_app_id от последней записи в таблице & +1 к нему. Затем введите его в новую строку базы данных. Ниже приведен код, который я создал до сих пор. Большая помощь была оценена, я ввел более 2500 записей в эту базу данных вручную, и мне так надоело это делать. Пожалуйста, помогите мне сохранить разумность. Объяснение данного кода было бы замечательным. Благодарю.

$increase = stripslashes($_GET['increase']); 
$email = stripslashes($_GET['email']); 
$unlock = stripslashes($_GET['unlock']); 
$numOf = stripslashes($_GET['numOf']); 



$d = mysql_connect($host, $user, $password); 
if (!$d) { 
    header($header.': Could not connect: '.mysql_error()); 
    exit(); 
} 


mysql_select_db($db); 

// ЭТО, ГДЕ Я НАМЕРЕН!

$rw_app_id = LAST_ROW(?)+1; 

//

$q = "INSERT INTO rw_promo_code (id, rw_app_id, code, unlock_code, uses_remaining) VALUES ('$increase', '$rw_app_id', '$email', '$unlock', '$numOf')"; 



$result = mysql_query($q); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
}else{ 

echo "Entered Successfully"; 

} 
+0

для чего это необходимо? потому что Mysql будет делать это автоматически при вставке –

+2

, просто измените свой столбец id на автоматическое увеличение и не вставляйте его. Изменить: он уже автоматически увеличивается! – bansi

+0

@bansi: на изображении идентификатор уже добавляется –

ответ

2

изменение линии

$q = "INSERT INTO rw_promo_code (id, rw_app_id, code, unlock_code, uses_remaining) VALUES ('$increase', '$rw_app_id', '$email', '$unlock', '$numOf')"; 

в

$q = "INSERT INTO rw_promo_code (rw_app_id, code, unlock_code, uses_remaining) VALUES ('$rw_app_id', '$email', '$unlock', '$numOf')"; 

Вам не нужно будет вычислить последний идентификатор и добавить к нему 1 и затем вставьте. MySQL сделает это за вас.

Примечание: Руководство прибавка опасно, так как некоторые другие лица могут вставили строку между вами рассчитать вам следующий идентификатор и сделать вставку

Для вставки max+1 of rw_app_id Попробуйте этот код

$q = "INSERT INTO rw_promo_code (rw_app_id, code, unlock_code, uses_remaining) SELECT (MAX(rw_app_id)+1), '$email', '$unlock', '$numOf' FROM rw_promo_code"; 
+0

Все, что вы сделали, это удалить идентификатор? Это уже автоматически увеличивается. Мне нужно увеличить rw_app_id. – CokePokes

+0

добавлен код для увеличения 'rw_app_id' также – bansi

+0

Это то, что я ищу (max + 1), но, похоже, я неправильно понял таблицу и приложение iOS. На самом деле мне нужно увеличивать id. Не могли бы вы показать мне в комментарии тот же метод, но для увеличения id. Извините за беспокойство. Я соглашусь после того, как попробую. – CokePokes

1

You может получить последний идентификатор с order by id

SELECT id FROM rw_promo_code ORDER BY id DESC LIMIT 1; 
3

Если вы хотите, последний из все строки в таблице, то это, наконец, время, когда MAX(id) - правильный ответ! :) вид.

SELECT fields FROM rw_promo_codeORDER BY id DESC LIMIT 1; 

или

$q = "SELECT MAX(id) FROM rw_promo_code " 

выбирает последний идентификатор строки, а затем увеличивается на 1

$q = "INSERT INTO rw_promo_code (id, rw_app_id, code, unlock_code, uses_remaining) VALUES ('$increase', '$rw_app_id', '$email', '$unlock', '$numOf')"; 

еще

$q = "INSERT INTO rw_promo_code (rw_app_id, code, unlock_code, uses_remaining) VALUES ('$rw_app_id', '$email', '$unlock', '$numOf')"; 
1

Ваш ид поля является автоматической increme nt. Поэтому в этом случае вам не нужен последний идентификатор вставки. ваш запрос должен быть

$q = "INSERT INTO rw_promo_code (rw_app_id, code, unlock_code, uses_remaining) VALUES ('$rw_app_id', '$email', '$unlock', '$numOf')"; 
Смежные вопросы