|
|
|
Как объеденить запросы INSERT, UPDATE и узнать будущее значение авто_инкримент?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Помогите пожалуйста объеденить 4 запроса в 1 если это возможно. Использую MySQL 4.0 $dbh->do("INSERT into topics (id_f, name) values($id, $topicmess)"); ($id_t) = $dbh->selectrow_array("select id from topics WHERE id_f = $id AND name = $topicmess"); # id - авто_инкримент, использую этот запрос т.к. не знаю какое значение приняло после вставки предыдущем запросом $dbh->do("INSERT into replies (id_t, text) values($id_t, $mess)"); $dbh->do("UPDATE forums set topics = topics + 2 where id = $id"); С уважением Сергей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2004, 12:18 |
|
||
|
Как объеденить запросы INSERT, UPDATE и узнать будущее значение авто_инкримент?
|
|||
|---|---|---|---|
|
#18+
Или не использовать запрос UPDATE, но тогда использовать примерно вот такой: $sth=$dbh->prepare("select forums.id, forums.name, COUNT(topics.id_f), forums.replies, DATE_FORMAT(forums.last_data_db, '%d-%m-%Y %H:%i:%s') from forums, topics WHERE forums.id=topics.id_f AND forums.id GROUP BY topics.id_f"); Проблема в том что нужно вернуть все записи, а возвращаются соответственно только соответствующии условию forums.id=topics.id_f, которое справедливо только для COUNT(topics.id_f) Если не трудно помогите разобраться с этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2004, 12:29 |
|
||
|
Как объеденить запросы INSERT, UPDATE и узнать будущее значение авто_инкримент?
|
|||
|---|---|---|---|
|
#18+
вообще то первый вариант более правильный но не совсем :)) существует специальная функция Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2004, 18:06 |
|
||
|
Как объеденить запросы INSERT, UPDATE и узнать будущее значение авто_инкримент?
|
|||
|---|---|---|---|
|
#18+
olkвообще то первый вариант более правильный но не совсем :)) существует специальная функция Код: plaintext 1. 2. 3. 4. 5. 6. Но эта функция вернет последнее значение, но возможно не то которое нужно, ведь в одно и тоже время могут практически одновременно вставляться записи, и оно может вернуть значение последнее, а уже возможно нужно предпоследнее. Как можно эти запросы объеденить в один? Или как можно довести до ума этот запрос: $sth=$dbh->prepare("select forums.id, forums.name, COUNT(topics.id_f), forums.replies, DATE_FORMAT(forums.last_data_db, '%d-%m-%Y %H:%i:%s') from forums, topics WHERE forums.id=topics.id_f AND forums.id GROUP BY topics.id_f"); т.е. для COUNT(topics.id_f) возврашаются данные соответствующие WHERE forums.id=topics.id_f, но нужно еще вернуть так же данные из таблицы forums для полей id, name и т.д. которые этому условию не соответствую. Я так предпологаю, что нужно использовать LEFT(или RIGHT) OUTER JOIN Заранее благодарен Сергей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 14:16 |
|
||
|
Как объеденить запросы INSERT, UPDATE и узнать будущее значение авто_инкримент?
|
|||
|---|---|---|---|
|
#18+
last_insert_id() вернет последнее значение автоинкр. поля для записи добавленной в текущей сессии. то есть тоько вами. то что добавляют другие - на вас не скажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 15:01 |
|
||
|
Как объеденить запросы INSERT, UPDATE и узнать будущее значение авто_инкримент?
|
|||
|---|---|---|---|
|
#18+
serf2004[quot olk] Как можно довести до ума этот запрос: $sth=$dbh->prepare("select forums.id, forums.name, COUNT(topics.id_f), forums.replies, DATE_FORMAT(forums.last_data_db, '%d-%m-%Y %H:%i:%s') from forums, topics WHERE forums.id=topics.id_f AND forums.id GROUP BY topics.id_f"); т.е. для COUNT(topics.id_f) возврашаются данные соответствующие WHERE forums.id=topics.id_f, но нужно еще вернуть так же данные из таблицы forums для полей id, name и т.д. которые этому условию не соответствую. Я так предпологаю, что нужно использовать LEFT(или RIGHT) OUTER JOIN Заранее благодарен Сергей Спасибо за пояснение про возращение последнего значения авто_инкримента. Как довести до ума все таки второй запрос. Буду очень благодарен если подскажите. С ыважением Сергей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 20:13 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=677&tid=1854823]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 420ms |

| 0 / 0 |
