Перейти к содержимому


нумерация строк


Сообщений в теме: 21

#1 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 06 Ноябрь 2012 - 11:15

Подскажите, как можно исправить нумерацию строк, что бы шли по порядку?

Прикрепленные изображения

  • Прикрепленное изображение: 2.jpg


#2 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 06 Ноябрь 2012 - 14:16

Настройка --> Конфигурация --> Категория --> Имя вашей таблицы --> Дополнительно --> Сортировка по умолчанию - здесь выбираете поле Номер и способ отображения (по убыванию или по возрастанию)

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#3 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 06 Ноябрь 2012 - 16:57

я не это имел в виду, поле ID не редактируется, по каким то причинам, при заполнении, иногда получается что номер плюсанулся, а строки нет, вот и получается 2-3-5 и т.д, как их переделать в 1-2-3?

#4 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 06 Ноябрь 2012 - 17:32

id - это системное поле, которое и не должно редактироваться. Оно по умолчанию идет с приращением. Если Вы создали строку с id = 4, например, и затем ее удалили, то следующая запись будет иметь id = 5. Так устроено специально, чтобы не нарушить взаимосвязи между таблицами, поскольку обычно они строятся именно на связи этих полей. Для редактирования поля или задания номера по своему алгоритму сделайте отдельное поле Номер.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#5 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 06 Ноябрь 2012 - 19:29

Авто нумерация поля "номер" не нумерует а просто берет номер аналогичный текущему номеру id, можно ли сделать что бы присваивался порядковый номер, то есть следующий после существующего в предыдущей строке?

#6 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 06 Ноябрь 2012 - 20:31

Снимите автонумерацию в настройках поля. Остальное по аналогии посмотрите здесь. В запросе sql измените условие поиска: $sqlQuery = "SELECT max(`fXX1`) AS maxNUM FROM `".DATA_TABLE."YY` WHERE `status`<>'2';"

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#7 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 06 Ноябрь 2012 - 22:21

не осилил

Цитата

где fXX1 - внутреннее имя поля num в базе
а как узнать внутреннее имя поля?

#8 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 07 Ноябрь 2012 - 01:05

Просмотр сообщенияOleg_ (06 Ноябрь 2012 - 22:21) писал:

а как узнать внутреннее имя поля?
Ниже все прописано.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#9 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 08 Ноябрь 2012 - 23:48

Никак не осилю, посмотрите что не так

Цитата

if (!$line['num']) {
$sqlQuery = "SELECT max(`f1272`) AS maxNUM FROM `".DATA_TABLE."YY` WHERE `status`<>'2';"
$result = mysql_query($sqlQuery) or user_error(mysql_error() . "<br>" . $sqlQuery . "<br>", E_USER_ERROR);
$row = mysql_fetch_assoc($result);
$line['num']=$row['maxNUM']+1;
}

Цитата

parse error: syntax error, unexpected T_VARIABLE in ..../functions1.php(254) : eval()'code on line 3


#10 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 11 Ноябрь 2012 - 01:23

Наконец осилил, вот тут

Цитата

status`<>'2';"
кавычка в конце не там должна стоять
спасибо за помощь

А вообще странно конечно, столь очевидная и нужная функция не включена в программу....

Сообщение отредактировал Oleg_: 11 Ноябрь 2012 - 01:25


#11 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 20 Ноябрь 2012 - 19:15

а не подскажите как по двум таблицам одну нумерацию организовать?

#12 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Ноябрь 2012 - 19:29

Просмотр сообщенияOleg_ (20 Ноябрь 2012 - 19:15) писал:

а не подскажите как по двум таблицам одну нумерацию организовать?
Пример приведите...

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#13 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 20 Ноябрь 2012 - 19:45

ну например таблица 1 там есть нумерация по вышеописанной схеме
и таблица 2, так же есть своя нумерация
нужно:
при создании строки в любой из этих таблиц, проверить значение "num" в обоих таблицах, выбрать наибольшее значение, ну а дальше $line['num'] = $row['maxnum']+1;
$line['Номер']=$line['num'];
то есть должно нумероваться так:
таблица 1 таблица 2
_1
______________ 2
_3
_4
______________ 5

Сообщение отредактировал Oleg_: 20 Ноябрь 2012 - 19:48


#14 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Ноябрь 2012 - 19:47

Просмотр сообщенияOleg_ (20 Ноябрь 2012 - 19:45) писал:

при создании строки в любой из этих таблиц, проверить значение "num" в обоих таблицах, выбрать наибольшее значение, ну а дальше $line['num'] = $row['maxnum']+1;
$line['Номер']=$line['num'];
Вы только что сами описали алгоритм. Проверяете, сравниваете, находите большее и к большему +1.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#15 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 20 Ноябрь 2012 - 20:04

я все понимаю только сказать не могу :)
а как сравнить два значения и выбрать из них большее?
Даже представить не могу :blink:

#16 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Ноябрь 2012 - 20:13

Как найти максимальное значение num в таблице Вы уже знаете из предыдущих опытов. Допустим $num_1 - это максимум первой таблицы и $num_2 - второй. Далее
$max_num=max($num_1,$num_2);
$line['Номер']=$max_num+1;
Что такое max? можете посмотреть здесь.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#17 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 20 Ноябрь 2012 - 20:53

вот так ?

Цитата

$sqlQuery = "SELECT max(f1382) as maxnum FROM ".DATA_TABLE."95 WHERE `status`<>'2'";
$num_1 = mysql_query($sqlQuery);
$sqlQuery = "SELECT max(f1282) as maxnum FROM ".DATA_TABLE."93 WHERE `status`<>'2'";
$num_2 = mysql_query($sqlQuery);
$max_num=max($num_1,$num_2);
$line['Номер']=$max_num+1;

Сообщение отредактировал Oleg_: 20 Ноябрь 2012 - 20:54


#18 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 20 Ноябрь 2012 - 21:38

нитак

#19 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Ноябрь 2012 - 22:52

Вы невнимательны
$sqlQuery = "SELECT max(f1382) as maxnum FROM ".DATA_TABLE."95 WHERE `status`<>'2'";
$result = mysql_query($sqlQuery);
$row = mysql_fetch_assoc($result);
$num_1=$row['maxnum'];
....
аналогично $num_2
...
$max_num=max($num_1,$num_2);
$line['Номер']=$max_num+1;
Советую ознакомится с основами php и mysql.
Это не сложно, было бы желание.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#20 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 21 Ноябрь 2012 - 00:15

Спасибище
пора Вам деньги уже платить :)





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных