X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> взять МОЮ запись из базы
Licoric
Licoric
Topic Starter сообщение 26.3.2009, 7:29; Ответить: Licoric
Сообщение #1


Не знал, как толковей назвать тему. Если кто исправит - спасибо.

Допустим несколько человек одновременно добавляют через некую форму в базу данные. Я хочу сделать ссылку на запись в базе. Вернее на вывод ее. Что б было понятнее - добавляют люди истории. При нажатии на кнопку генерируется страничка с текстом "спасибо за историю" (я образно). Как можно сделать так, что б можно было выдать сразу ту запись из базы, которую добавил конкретный посетитель? Ибо если брать, допустим, последнюю строку из базы, то может получится такой момент, что один чел добавляет историю, а в момент генерации страницы кто-то другой так же добавляет историю. Первому добавившему придет вторая ссылка, допустим или вообще - не его (не та, что нужна). Кто подскажет реализацию?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DAbro
DAbro
сообщение 26.3.2009, 8:39; Ответить: DAbro
Сообщение #2


ну я думаю мало вероятно, что ето возможно) тоесть вытаскиваеш по последнему айдишнику запись и все.. но если для тебя так принципиально то можно сделать по другому: я бы тогда нашел все записи в базе данного юзернэйма и вывел последнюю.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 26.3.2009, 11:32; Ответить: MetSerp
Сообщение #3


(DAbro @ 26.3.2009, 10:39) *
я бы тогда нашел все записи в базе данного юзернэйма и вывел последнюю.

думаю так и только так. ведь необходимо делать выборку по критерию авторства.
есть вариант совать переменную в сессию какую либо и брать историю по ней то есть добавить в бд ячейку например ses при начале создания истории генерируется эта переменная и при добавление пишется в бд затем сразу же выборка делается по этой же переменной. Чтобы н получалось повторов то добавить проверку на существование переменноей то есть до вывода формы добавления делается запрос в базу по критерию сессионной переменной и если вернулось != 0 строк то генерировать новую и снова проверять :achtung:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 26.3.2009, 11:46; Ответить: Webmaster_hb
Сообщение #4


(Licoric @ 26.3.2009, 09:29) *
Не знал, как толковей назвать тему. Если кто исправит - спасибо.

Допустим несколько человек одновременно добавляют через некую форму в базу данные. Я хочу сделать ссылку на запись в базе. Вернее на вывод ее. Что б было понятнее - добавляют люди истории. При нажатии на кнопку генерируется страничка с текстом "спасибо за историю" (я образно). Как можно сделать так, что б можно было выдать сразу ту запись из базы, которую добавил конкретный посетитель? Ибо если брать, допустим, последнюю строку из базы, то может получится такой момент, что один чел добавляет историю, а в момент генерации страницы кто-то другой так же добавляет историю. Первому добавившему придет вторая ссылка, допустим или вообще - не его (не та, что нужна). Кто подскажет реализацию?

используйте функцию PHP - mysql_insert_id
mysql_insert_id — Возвращает ID, сгенерированный при последнем INSERT-запросе.
таким образом вы сразу получите ID той записи что только-что вставилось, даже если на сайте одновременно будут отправлять 100 человек свои статьи, каждый получит в ответ именно свой ID
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 26.3.2009, 17:09; Ответить: Licoric
Сообщение #5


А как ей пользоваться?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 26.3.2009, 18:53; Ответить: Webmaster_hb
Сообщение #6


[PHP]$query = "INSERT ...."
$result = mysql_query($query);

$query = "SELECT * FROM xxx WHERE id='".mysql_insert_id()."'";[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DAbro
DAbro
сообщение 27.3.2009, 12:36; Ответить: DAbro
Сообщение #7


а эта функция возвращект последнюю запись добавленную именно тобой?? или вообще последнюю?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 27.3.2009, 12:56; Ответить: Webmaster_hb
Сообщение #8


(DAbro @ 27.3.2009, 14:36) *
а эта функция возвращект последнюю запись добавленную именно тобой?? или вообще последнюю?

последнюю запись выполненного INSERT в этом коннекте, а для одного пользователя это и будет последняя запись
если же нужна просто последняя запись, то надо брать ORDER BY id DESC LIMIT 1
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
patison
patison
сообщение 28.3.2009, 9:36; Ответить: patison
Сообщение #9


DAbro, этой функции пофиг КТО добавил. она возвратит послений айдишник. прикол в том что происходит это в мгновения, потому случай когда я получу айди истории человека который запостил через 0.00001 секунды после меня настолько мала, что его можно не рассматривать.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 29.3.2009, 17:39; Ответить: Licoric
Сообщение #10


[PHP]<?php
include ("header.php");
//Извлечение данных из переменных
$enghar=$_POST['enghar'];
$year=$_POST['year'];
$idmod=$_POST['idm'];
$body=$_POST['body'];
$interior=$_POST['interior'];
$running=$_POST['running'];
$driving=$_POST['driving'];
$engine=$_POST['engine'];
$gear=$_POST['gear'];
$service=$_POST['service'];
$comment=$_POST['comment'];
$link = @mysql_connect ($host, $user, $pass);
if ( ! $link ) {
die ("Невозможно подключится к серверу MySQL: "
. mysql_error() );
}
@mysql_select_db($db)
or die ("Невозможно открыть БД $bd: " . mysql_error() );
//Добавляем данные в БД:
$query = "insert into review (idmod, year, enghar, body, interior, running, driving, engine, gear, service, comment) values
('".$idmod."', '".$year."', '".$enghar."', '".$body."', '".$interior."', '".$running."', '".$driving."', '".$engine."', '".$gear."', '".$service."', '".$comment."') WHERE id='".mysql_insert_id()."'";
mysql_query ($query, $link)
or die ("<b>Ошибка Insert: </b>" . mysql_error() );
echo "
<table border=0 align=center width=100%>
<tr>
<td><center><p><a href=../obzor.php?obz=", mysql_insert_id(); echo ">Посмотреть ваш отзыв!</a></p></center>
</td>
</tr>
</table>
";
include ("footer.php");
?>[/PHP]
Как тут оперировать mysql_insert_id??? Ошибку выдает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC
22 Krok 6743 12.4.2024, 5:17
автор: Krok
Открытая тема (нет новых ответов) Базы Youtube кейвордов с данными по конкуренции и Volume
5 Krok 1458 11.4.2024, 5:12
автор: Krok
Горячая тема (нет новых ответов) Свежие базы ключевых слов с подсказок гугла!
125 Krok 68510 7.4.2024, 4:52
автор: Krok
Открытая тема (нет новых ответов) Базы досок объявлений России, Украины, Беларуси и Казахстана
5 freeax 6462 10.3.2024, 15:07
автор: freeax
Открытая тема (нет новых ответов) ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ
[Чарджбек|Рекавери|Возврат]
9 Leado 3893 9.2.2024, 16:04
автор: baza0013


 



RSS Текстовая версия Сейчас: 20.4.2024, 18:21
Дизайн