![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Мне нужно делать запросы в БД, причём делать запросы так, чтобы к каждой строчке из БД был запрос только от одного человека, я изначально решил, решить эту проблему таким образом.
Получать строку, и автоматически добавлять значение, что эта строчка используется уже. И при получении проверять не используется ли она. Но дело в том что оно не всегда может одинаково срабатывать, и может всё таки одна и таже строчка передаться двум людям. Поэтому возникла идея, забирать номера строк из файла. Т.е. читаем из файла число(номер), увеличиваем на 1 считываем строчку с этим номером, пишем этот номер обратно в файл. И тут идея как бы такая, что когда файл открыт для записи он не открыт для чтения и наоборот, поэтому возможность пересечься отпадает. Вот помогите реализовать эту ситуацию с файлом. "Мне нужно открывать файл, с него считать переменную, увеличить её на 1 и записать в файл." Или предложите какое-нибудь более элегантное решение этой проблемы |
|||
|
||||
| patap |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 893 Регистрация: 7.5.2005 Где: Украина, Зп Репутация: 26 Всего: 40 |
покапай в сторону InnoDB+транзакции
-------------------- На боку кобура болталась, сзади шашка отцовская звякала. Впереди меня все хохотало, а позади все плакало (с) |
|||
|
||||
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
вот я такой код использовал для вывода содержимого. Я делал запрос из двух разных браузеров и он мне выводит первую строчку из БД, а на сколько я понял из принципа транзакций, он должен был заблокировать первую строчку после того как я сделал запрос и вывести мне вторую. Если я что, неправильно понял, поправьте меня. Это сообщение отредактировал(а) Serious2008 - 21.9.2011, 00:40 |
|||
|
||||
| vov4eg |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 27.6.2011 Репутация: нет Всего: нет |
1. PHP выполняеться на сервере и по этому как бы ты его не запускал, результат будет один и тот же, так как браузеры будут отображать только то что прислал им сервер.
2. Транзакции(на сколько я понимаю) - это несколько запросов к БД, которые обеденены в транзакцию, но смысл в том что если хотя бы один из них не выполниться, то не выполняться и все остальные запросы в данной транзакции. 3. Так как в $line содержаться результаты запроса, то выведи данный массив на страницу(print_r($line)) и просмотри как получить доступ к интересующей тебя строке. Честно говоря так и не понял в чем смысл того, что ты делаеш, если можеш опиши подробнее для решения какой задачи ты хочеш использовать подобный подход |
|||
|
||||
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
vov4eg,
Я пытаюсь получать данные по одной строчке из БД, мне нужно сделать так, чтобы для каждого человека который заходит на сайт, выдавалась новая строчка. |
|||
|
||||
| vov4eg |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 27.6.2011 Репутация: нет Всего: нет |
Думаю можно использовать запрос для определения количества записей в таблице или ID последней записи, с помощью полученных данных ты будешь выводить последнюю доступную строку, для этого просто нужно сформировать запрос:
К сожалению не могу более подробно, работа зовет. |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
заходит человек ты вставляешь запись mysql_insert_id() Вернет ID Вставки Запоминаем его в $_SESSION или куки дальше проверяем если в куках есть запись дергаем ID и работаем с ней как подметил patap лучши использовать InnoDB
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |