[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Узнать ID измененной строки
file_xz
Привет, есть таблица:

id -> "int" AUTO_INCREMENT
users -> "int" NULL
value -> "varchar"

В таблицу периодически добавляются 1000 строк с пустым значением users - > NULL.
При кое каких действиях пользователя в таблице изменяется одна строка с пустым значением users на ID пользователя.

mysql_query("UPDATE `table` SET `users`='$id' WHERE `users` IS NULL LIMIT 1");

Мне нужно узнать было ли изменение - его может и не быть если пустые строки закончились, и если изменение произошло то узнать ID строки которая изменилась.
То есть по сути мне нужен аналогичный вариант mysql_insert_id(); - данный вариант действует при добавление строк "INSERT" (Если больше 0 значит строка добавилась и в данном значение ID строки).
У меня только один вариант реализации - добавить в таблицу еще одно значение секунд, и делать вот такой запрос:

$sec=(int)gettimeofday("sec");
mysql_query("UPDATE `table` SET `users`='$id', `sec`='$sec' WHERE `users` IS NULL LIMIT 1");
$query1=mysql_query("SELECT `id` FROM `table` WHERE `id`='$id' AND `sec`='$sec'");
$query=mysql_fetch_assoc($query1);
if(isset($query['id'])){
//Изменилась $query['id'] строка
}else{
//Строка не изменилась
}
Valick
file_xz, сама по себе постановка задачи странная.
Погугли, что такое проблема молотка и как забивать микроскопом гвозди.

_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
Цитата (file_xz @ 12.01.2020 - 17:53)
В таблицу периодически добавляются 1000 строк с пустым значением users - > NULL.
При кое каких действиях пользователя в таблице изменяется одна строка с пустым значением users на ID пользователя.

А нахрена это делать, извините за мой французский? Почему бы не добавить строчку только тогда, когда она реально нужна? Тогда "при кое-каких действиях пользователя" будет всего одно, чётко определенное действие: добавка ОДНОЙ строки.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
file_xz
Цитата (sergeiss @ 13.01.2020 - 00:01)
А нахрена это делать, извините за мой французский? Почему бы не добавить строчку только тогда, когда она реально нужна? Тогда "при кое-каких действиях пользователя" будет всего одно, чётко определенное действие: добавка ОДНОЙ строки.

Я образно сказал что их будет 1000.
Они добавляются при каком то событие, в значение value хранится некоторое поощрение.
Поощрение рандомное от и до чего то, поощрения разные допустим 500 строк должно добавлять то и то и рандом от и до, далее 150 строк подобное поощрение только получше, далее 20 строк.
Вообщем принцип вы поняли, для этого и нужно изначально сгенерировать строки, если строки в БД нет пустой - значит все раздали.
kaww
Сначала делать select, затем update:
$id = query('SELET `id` FROM `table` WHERE `users` IS NULL ORDER BY `id` LIMIT 1 FOR UPDATE');
if ($id) {
query("UPDATE `table` SET `users` = '{$users}' WHERE `id`='{$id}'");
}
Эли4ка
Задача ваша, скорее всего неверно описана.
Цитата (file_xz @ 12.01.2020 - 16:53)
В таблицу периодически добавляются

Цитата (file_xz @ 13.01.2020 - 02:20)
Я образно сказал что их будет 1000.

Периодически, образно..
Цитата (file_xz @ 13.01.2020 - 02:20)
Они добавляются при каком то событие, в значение value хранится некоторое поощрение.

Цитата (file_xz @ 13.01.2020 - 02:20)
Поощрение рандомное от и до чего то

Какое-то событие, рандомное поощрение.
Что за добавь тогда, не знаю когда, добавь то не знаю что?! blink.gif
Цитата (file_xz @ 12.01.2020 - 16:53)
если пустые строки закончились

У тебя нет пустых строк. Есть строки с NULL значением. NULL

Valick
file_xz, для того что бы всё не делать через жопу необходимо читать техническую литературу.
Создай таблицу gift записывай туда сгенерённые подарки.
Доставай оттуда запись и вставляй подарок в таблицу пользователя (это можно сделать одним запросом, но лучше отдельными, тогда ты будешь знать id подарка и при инсёрте будешь знать id созданного пользователя) После успешного создания пользователя удаляй подарок из таблицы gift. Для пущей важности все три запроса можно обернуть транзакцией.

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.