|
|
|
|
|
для: вопрос_MYSQL
(15.10.2004 в 15:57)
| | Хм... можно поробовать, я если честно не пробовал этой функцией пользоваться, так как часто прибегаю к многострочной вставке, когда она не применима. | |
|
|
|
|
|
|
|
для: cheops
(15.10.2004 в 09:30)
| | так все заработало а вот есть вопрос
Генерирование последовательность без атрибута auto_increment а спомощью функции LAST_INSERT_ID() c аргументом (в MYSQL c версии 3,22,9)
пример :
UPDATE name_table SET ident = LAST_INSERT_ID (ident +1);
SELECT LAST_INSERT_ID() ;
функцию LAST_INSERT_ID() в моем примере можно применить? | |
|
|
|
|
|
|
|
для: вопрос_MYSQL
(15.10.2004 в 01:52)
| | $sql - это дескриптор результата, с помощью его следует получить результат, например при помощи функции mysql_result():
<?php
$sql = mysql_query("SELECT MAX( n_rubrika ) AS n_rubrika
FROM pages ;");
$num = mysql_result($sql, 0);
$num++;
$spisok = mysql_query("
UPDATE pages SET rubrika='".$rubrika."', id_rubrika='12', n_rubrika = '".$num." WHERE name='".$URL."'
;" ); ?>
|
http://www.softtime.ru/dic/id_dic=127&id_group=2 | |
|
|
|
|
|
|
|
для: вопрос_MYSQL
(15.10.2004 в 01:52)
| | Мне кажеца вам нужно зделать вот так
$sql = "SELECT MAX( n_rubrika ) AS n_rubrika
FROM pages";
$spisok = mysql_query("
UPDATE pages SET rubrika='".$rubrika."', id_rubrika='12', n_rubrika = '".$sql."'+1 WHERE name='".$URL."' " );
|
А у вас ошибка то что вы в конце каждого запроса ставети точку с запятой
mysql_query("SELECT MAX( n_rubrika ) AS n_rubrika
FROM pages ;");
|
а нада
mysql_query("SELECT MAX( n_rubrika ) AS n_rubrika
FROM pages");
|
Потому что когда пишете код в ПХП то он кагбы автоматически закрывает запрос | |
|
|
|
|
|
|
|
для: cheops
(15.10.2004 в 01:38)
| |
$sql = mysql_query("SELECT MAX( n_rubrika ) AS n_rubrika
FROM pages ;");
$spisok = mysql_query("
UPDATE pages SET rubrika='".$rubrika."', id_rubrika='12', n_rubrika = '".$sql."'+1 WHERE name='".$URL."'
;" );
|
что то этот код не работает
этот запрос:
SELECT MAX( n_rubrika ) AS n_rubrika
FROM pages
находит максимальное значение n_rubrika но почему то это значение не переходит переменной $sql
деалаю echo $sql ;
выводит
.Resource id #12. | |
|
|
|
|
|
|
|
для: вопрос_MYSQL
(15.10.2004 в 01:27)
| | Хм... да помню какая-то закавыка была... тогда придётся использовать два запроса - сначала узнавать максимальное значение, увеличивать на единицу, а потом подставлять полученное значение во второй запрос. | |
|
|
|
|
|
|
|
для: cheops
(15.10.2004 в 01:11)
| |
UPDATE table SET rubrika='new text ...', n_rubrika = MAX(n_rubrika) + 1
WHERE id_page = 4;
|
что то не срабатывает этот код
n_rubrika = MAX(n_rubrika) + 1 это значит что значение записи поля n_rubrika будет увеличено на максимальное значение которое есть в поле n_rubrika на единицу ? | |
|
|
|
|
|
|
|
для: вопрос_MYSQL
(15.10.2004 в 01:06)
| | Ну... если n_rubrika априори уникально, то можно и так. | |
|
|
|
|
|
|
|
для: cheops
(15.10.2004 в 00:43)
| | А может лучше тогда
1 Определить максимальное значение поля n_rubrika
и изменяемой записи присвоить значение поля n_rubrika максимальное значение поля n_rubrika +1 | |
|
|
|
|
|
|
|
для: вопрос_MYSQL
(15.10.2004 в 00:16)
| | >увеличивалось на единицу для записи которую
>узменили потом
Так уникальность не сохранится... так как после добавляя записи
45
46
47
и изменяя изменяя запись 46 получим две записи с номером 47. Увеличение на единицу это требование того, чтобы изменённая запись была дургой? Тогда порядок действий должен быть следующим.
1) Уничтожить поле n_rubrika.
2) Нужно снять атрибут auto_increment с id_page.
3) Создать поле n_rubrika с атрибутом auto_increment - так мы получим уникальные значения для уже существующих записей.
4) Вернуть атрибут auto_increment для поля id_page
5) При создании новой записи присваивать n_rubrika значение равное максимальному значению n_rubrika + 1
INSERT INTO table VALUES(0,'$name', '$rubrika', $id_rubrika, MAX(n_rubrika)+1)
|
6) При изменении записи, не просто увеличивать на единицу поле n_rubrika, а увеличивать максимальное значение для этого столбца
UPDATE table SET rubrika='new text ...', n_rubrika = MAX(n_rubrika) + 1
WHERE id_page = 4;
|
| |
|
|
|
|