-  [WT]  [Главная] [Скачать себе эту Кусабу]

[Возврат] [Весь тред] [Последние 50 постов] [Первые 100 постов]
Способ отправки: Ответ
Имя
Тема   (reply to 181)
Сообщение
Файл
Очистить
URL
Пароль  (для удаления постов и файлов)
Обратно   
  • Читайте правила, они интересные.
  • Есть вопросы? Читайте FAQ.
  • Почему тут не работает куклоскрипт? ПОТОМУ ЧТО НЕХУЙ.
  • Поддерживаемые типы файлов: GIF, JPG, PNG
  • Максимальный размер файла 8000 KB.
  • Изображения больше 200x200 пикселей будут уменьшены.
  • Количество уникальных постов: 141. Посмотреть каталог

Файл 139428158398.jpg - (59.31KB , 600x338 )
181 No. 181
399 Постов пропущено. Last 50 shown. Развернуть все изображения
>> No. 644
Единственное логическое предположение - в одной таблице не может существовать две строки с одинаковым первичным идентификатором и в данном случае это ID.
НО, ведь существуют посты с динаковым номером на разных досках? И ведь все они хранятся в одной таблице, только с разными boardid
Я сконфужен...
>> No. 646
>>644
>Если вы используете IGNORE в команде INSERT, строки, значения PRIMARY или UNIQUE полей в которых повторяют существующие в таблице, игнорируются и не добавляются в таблицу. Если же вы не укажете IGNORE, выполнение команды прекращается когда попадается строка, значение ключевого поля в которой повторяет существующее значение.
>Для команд INSERT INTO ... SELECT существуют следующие ограничения:
>Запрос SELECT не может содержать выражение ORDER BY.
>Таблица, в которую добавляется строка не может использоваться в выражении FROM части SELECT (т.к. SELECT в результате такого использования может найти записи, вставленные ранее при выполнении того же самого запроса INSERT, что может привести к непредсказуемым результатам).
>> No. 647
Файл 141185852545.png - (518.48KB , 700x679 )
647
Заменю завтра утром.
>> No. 648
>>646
То есть, иными словами >>643 чуть менее чем полностью сплошная ошибка? Я фигею! Это что, мне значит нужно сперва всю строку таблицы в массив скопировать, и только потом уже через инсерт вставлять? И всё-равно не получится так-как одинаковый id? Мать моя женщина, а как же тогда посты с одинаковыми id на разных доскАх создаются? Всё, я ушёл спать. Вот последняя версия с полурабочим копированием: http://rghost.ru/private/58239903/d893ef241687024ad5c837b66a702f14
>> No. 649
Файл 141189556698.png - (2.07MB , 1600x800 )
649
>>643
> Странно, при копировании тредов с сохранением нумерации выдаёт ошибку внесения записи в базу данных.
Работало жи, лол.
Whereas REPLACE does delete the original row and inserts a new row, generating and storing a new auto-increment id
Можно реплейсом, вроде.
А можно еще тот сок мозга попробовать выполнить в похопэмайодмине и посмотреть где ошибки, да.
>> No. 650
Файл 141189674228.png - (109.36KB , 700x700 )
650
>>643
Ошибок как таковых нету.
MySQL returned an empty result set (i.e. zero rows).
>> No. 651
Файл 141189777192.png - (2.07MB , 1600x800 )
651
>>650
Нифига не понел, но в бд теперь джве записи.
Попробую еще раз.
>> No. 652
Я так и не разобрался вчера.
REPLACE использовать нельзя.
>> No. 653
>>643
> Странно, при копировании тредов с сохранением нумерации выдаёт ошибку внесения записи в базу данных.
Ну хз, ошибка была только если уже есть пост с таким номером.
Но на нее можно забить юзнув реплейс.
>> No. 654
Файл 141189829783.png - (831.41KB , 1331x756 )
654
>>652
> REPLACE использовать нельзя.
Почему? Только что юзнул - всё ок.
>> No. 655
>>653
>ошибка была только если уже есть пост с таким номером
Нет. Я создал специально пустую доску "3" и попробовал скопировать туда - ERRRROR!!! и нифига не копирует. Без сохранения номеров всё работает.
>Почему?
Потому что однажды это может сломать всю таблицу. Лучше не рисковать. К тому же функция добавляющая новые посты работает через инсерт. Поправь меня если я ошибаюсь - все посты со всех досок хранятся в единой таблице (а значит имеют повторяющиеся id), добавляются через инсерт и ничего.
>> No. 656
Я придумал! Посмотри iD постов под номером 1 на 1 и 2 досках пожалуйста, это всё разъяснит.
>> No. 657
Файл 141190190026.png - (191.45KB , 845x945 )
657
Я заменил.
Какие функции тестить?
>> No. 658
Файл 141190207557.png - (876.69KB , 1400x2336 )
658
>>655
> Нет. Я создал специально пустую доску "3" и попробовал скопировать туда - ERRRROR!!! и нифига не копирует. Без сохранения номеров всё работает.
REPLACE INTO `_X1posts` (`id`, `parentid` , `boardid`, `name` , `tripcode` , `email` , `subject` , `message` , `file` , `file_original`, `file_type` , `file_md5` , `image_w` , `image_h` , `file_size` , `file_size_formatted` , `thumb_w` , `thumb_h` , `password` , `timestamp` , `bumped` , `ip` , `ipmd5` , `posterauthority` , `tag` , `stickied` , `locked` ) (SELECT 143, `parentid`, 14, `name` , `tripcode` , `email` , `subject` , `message` , `file` , `file_original`, `file_type` , `file_md5` , `image_w` , `image_h` , `file_size` , `file_size_formatted` , `thumb_w` , `thumb_h` , `password` , `timestamp` , `bumped` , `ip` , `ipmd5` , `posterauthority` , `tag` , `stickied` , `locked` FROM `_X1posts` WHERE `boardid` = 11 AND `id` = 143)

Сейчас таким вот попробую скопировать. Если скопируется - значит какаято переменная фигню выводит.
А, ну и инсертом, для начала.
>> No. 659
>>657
1. "Первые 100 постов" (Счётчик пропущенных при первых ста не правильно показывает, знаю. Где его искать чтоб исправить не знаю. Связано это стем, что при всех прочих условиях первый пост не считается, а тут он входит в число.);
2. Восстановление удалённых тредов;
3. Перенос тредов (во всех вариациях);
Копирование лучше пока не трогать, хотя оно от части и работает.
>> No. 660
>>658
http://deachrysalis.tk/kokoko/
INSERT INTO `_X1posts` (`id`, `parentid` , `boardid`, `name` , `tripcode` , `email` , `subject` , `message` , `file` , `file_original`, `file_type` , `file_md5` , `image_w` , `image_h` , `file_size` , `file_size_formatted` , `thumb_w` , `thumb_h` , `password` , `timestamp` , `bumped` , `ip` , `ipmd5` , `posterauthority` , `tag` , `stickied` , `locked` ) (SELECT 143, `parentid`, 16, `name` , `tripcode` , `email` , `subject` , `message` , `file` , `file_original`, `file_type` , `file_md5` , `image_w` , `image_h` , `file_size` , `file_size_formatted` , `thumb_w` , `thumb_h` , `password` , `timestamp` , `bumped` , `ip` , `ipmd5` , `posterauthority` , `tag` , `stickied` , `locked` FROM `_X1posts` WHERE `boardid` = 11 AND `id` = 143)

всеок.
>>656
ща.
Досок 1 и 2 нет.
Есть 11 14 16я
>> No. 661
Файл 14119028459.jpg - (945.06KB , 1656x2267 )
661
>>656
Ничего интересного кроме поста с ид=1 парентид=1 на доске номер 0, лол.
>> No. 662
>>660
>Досок 1 и 2 нет. Есть 11 14
Я не помню их id потому говорю их имена. Тебе идишки проще смотреть чем мне.
>>661
А вот это я совершенно не понял. На обоих этих досках есть посты под номером 1, я хочу чтобы ты посмотрел у них обоих их id. С учётом того что таблица у них общая (ведь общая?), будет крайне полезно.
>> No. 663
Файл 141190349749.png - (932.04KB , 720x960 )
663
>>660
А, так, попадается эррор о
#1062 - Duplicate entry '16-143' for key 'PRIMARY'
Ну так и должно быть, реплейс и поехали, лол.
А база - фиг с ней, не развалится. Наверное.
>> No. 664
Файл 141190373913.jpg - (1.14MB , 3840x1080 )
664
>>662
Что там смотреть, один он и есть один.
>> No. 665
File
Removed
>>659
1. Да.
2. Да, но сохраняет только тамбнейлы. Оригинальные изображения исчезают.
3. Вроде все нормально.

Про копирование не понял, как работает, в частности - что мне отмечать (или не отмечать) в чекбоксах "переместить файлы" и "сохранить нумерацию", если я копирую тред?

Кстати, в принципе придумал, как решать проблему с нумерацией при переносе.
Кусаба ж позволяет создать доску с любым порядковым номером первого поста. Хоть 1, хоть 17784.
То есть можно просто делать так:
1. У меня в /чушь/ тред доходит до 500.
2. Я переношу тред в /историю/.
3. Я удаляю /чушь/ как доску.
4. Я пересоздаю /чушь/ с соответствующим номером 1-го сообщения.
Так как в этом разделе ничего, кроме этого моего чятика, нет и будет - может работать, в принципе.

P.S.
Насчет имени на доске, как на Ычане (в понедельник Сруль Хуйман, всю неделю - Сырно).
Нет, кусаба так не может никак - ни с форсированной анонимностью, ни без, ни с пересборкой доски, ни без нее. Первый отправленный пост с новым именем пересчитывает все имена по всей доске (кроме тех, где поле Имя было заполнено автором поста).
>> No. 666
Файл 141190457377.jpg - (872.75KB , 3600x2620 )
666
http://www.deachrysal.is/a1/
Нижние пустые треды - восстановленные после удаления.
>> No. 667
>>666
У тебя там квадратики (у меня нет)? А до удаления не было квадратиков? Странно. Всё что делает процедура восстановления - меняет маркер удалённости, стирает дату удаления и запускает стандартную процедуру пересборки (как при удалении) для обновления доски. Вот точь-в-точь такую же - тупо вызов функции пересборки.
>> No. 668
Файл 141190552885.jpg - (24.24KB , 378x433 )
668
>>667
>У тебя там квадратики (у меня нет)? А до удаления не было квадратиков?
>> No. 669
Файл 141190579449.png - (41.72KB , 1661x915 )
669
У меня просто пустая страница.
>> No. 670
>>663
>Команда REPLACE отличается от INSERT только тем, что если в таблице имеется запись с таким же значением в индексированном поле (unique index), как у новой записи, то старая запись удаляется перед добавлением новой.
Тебе ведь не нужно, чтобы старый пост удалялся?
>>665
2. Посмотрю вечером.
3. Зря ты так извращаешься.
P.S. В принципе, я понял как это решить с логической точки зрения, но скорее всего как всегда 99,99% времени уйдёт лишь на то чтобы понять где это в кусабе искать.
>> No. 671
>>669
Может ты вместе с файлами в тот раз удалил?
Хорошо, вечером посмотрю.
>> No. 672
Файл 141190652592.jpg - (68.94KB , 1024x797 )
672
>>670
>Зря ты так извращаешься.
Ну дык перенос-то не учитывает номера перемещенного.
>> No. 673
Файл 141190684978.jpg - (808.05KB , 1890x1800 )
673
>>670
> Тебе ведь не нужно, чтобы старый пост удалялся?
Почему бы и нет, если мешает.
>> No. 674
>>672
Тебе не надо ничего придумывать, только ставить задачи. Всё остальное мы придумаем сами.
>>673
Нет пути! В общем мы как бы разобрались, что мешает действительно совпадение по id, при том сама кусаба при создании новых постов на это кладёт саморез т.к. для неё это не ограничение. Странно. Но зато понятно в чём причина и где искать. Вечером разберусь.
>> No. 675
Файл 141190849749.gif - (266.79KB , 600x600 )
675
>>674
>Тебе не надо ничего придумывать, только ставить задачи. Всё остальное мы придумаем сами.
Neat.
>> No. 676
Файл 141190855671.png - (1.09MB , 900x1115 )
676
>>674
> В общем мы как бы разобрались, что мешает действительно совпадение по id
Оно и должно мешать при копировании/переносе с схоронением этого самого id, не?
>> No. 677
Файл 141190912678.jpg - (1.38MB , 1500x2044 )
677
Проверил еще раз, выдает эррор1 просто так.
Через пхпмайодмин все ок и без ошибок проходит.
Ощибка именно в запросе, либо какаято функция выдает фигню, либо ошибка в самом запросе.
>> No. 678
>>676
Да, но не переносе на пустую доску, только потому что где то на другой доске уже есть такой номер поста. Вся проблема в том, что кусаба хранит ВСЕ посты в единой таблице, где "первичным ключом" является ID поста (и естественно они повторяются), а первичные ключи по спецификации баз данных не должны повторятся. Перенос то с сохранением айдюши работает (при котором меняется приписка к доске в уже имеющейся записи), не работает только внесение новой записи.
>> No. 679
Файл 141190949698.png - (223.43KB , 500x705 )
679
>>678
Замени там инсерт на реплейс, если и с ним будет эррор - то ошибка в переменных, если пройдет норм - то...
>> No. 680
>>679
Говорю же, идёт удаление старой строки. Сто раз уже пробовал.
Пфффф. Замучился. Так и сяк гонял. Уже и отдельно на своём компе на элементарной базе из 1 таблицы с 2 строками тестил - ну не может содержать одна таблица одинаковые первичные ключи! Что через инсерт, что если другой строке через апдат первичный ключ изменить.
Duplicate entry for key 'PRIMARY'

Как они вообще умудряются дублироваться в одной таблице у кусабы? Луняш, у тебя то самого хоть один дубликат удалось сделать?
>> No. 681
Сразу вставить запись через инсерт с таким же первичным ключом не получится: если пробовать так - выдаст ошибку, если с игнором - просто молча не вставит. Если же вставить строку без первичного ключа а затем изменить сам этот ключ - опять будет ошибка с былинным отказом. Реплес же заменяет старую строку на новую - удаляет пот с таким же ID на другой доске и добавляет новую запись.
>> No. 682
>>669
Да, кусаба автоматом удаляет файлы у удалённых постов и тредов. Сами посты и треды сохраняет, а файлы их удаляет. Хочешь отключу? Но тогда не понятно как удалять лишние файлы... можно конечно восстанавливать и удалять файлы отдельно, а потом снова удалять, но я лучше сделаю ещё один переключатель и кнопочку.
>> No. 683
>>669>>682
Починил. Теперь при удалении постов файлы можно удалить только из админки и только если пост не удалён, ибо нефиг. Удалять файл отдельно по паролю прямо со страницы. Хотел ещё в просмоторщик удалённых тредов удалялку добавить, но потому подумал что слишком жирно это всё будет. На самом деле, чтоб бухой админ случайно не промахнулся.
Вот архив с файлами которые нужно заменить:
http://rghost.ru/private/58254694/f3debf423bb10716aeee71674b01c7f3
Копирование, юникоды, рандомизаторы и прочая шняга в процессе.
>> No. 684
>>683
>Удалять файл отдельно по паролю прямо со страницы.
...всё ещё можно. Как впрочем и из админки.
fix
>> No. 686
Так, всё пофикшено. Причина ошибки копирования оказалась в кривом результате возвращаемом одной из оригинальных кусабовских функцией. Исправлять не стал, поправлено при помощи костылей. Приделана проверка существования перемещаемого\копируемого треда. Ну и всё что перечислялось и сообщениях выше, о чём я уже забыл, тоже пофикшено. На всякий случай кидаю все 3 файла:
http://rghost.ru/private/58267266/ce40b021b6a6296a117c36ce72267cb0
>> No. 687
Пробовал вчера сделать быстрый ответ. Но так и не пони, почему при изменении шаблона в исходном коде страницы ничего не меняется.
>> No. 688
Всё, сами мучайтесь со своим быстрым ответом. Не люблю JS. Наверняка во вложенности имён ошибся, потому и не работает. На моих сайтах куда более сложные конструкции работали, но как вспомню сколько мук было с этим JS, сразу всё желание разбираться отшибает. Пусть допиливает то кому это нравится. Вот заготовка:
<div style="cursor: pointer;" onClick="
if(document.all('postbox').style.visibility == 'visible'){
document.all('postbox').style.visibility = 'hidden';
document.all('B1').src ='/img/P_v.gif';
} else {
document.all('postbox').style.visibility = 'visible';
document.all('B1').src = '/img/P_h.gif';};
">ПОКАЗАТЬ\СКРЫТЬ форму ответа</div>

<div class="postbox" style="position: fixed; visibility: hidden;">

По идеи там ещё диву с формой ответа нужно цвет фона задать и позицию, желательно по правому краю. Ну и само-собой, когда до рабочего и презентабельного состояния доведёте нужно оптимизировать код в функцию и интегрировать её в один из готовых блоков либо вывести во внешний файл.
>> No. 689
Юникод чинить не буду. Это похоже просто какая то из стандартных (но устаревших) PHP функций с новыми версиями юникода не дружит. Вот все сайты использующие её и глючат. Это значит перечитывать все списки функций работающих со строками, тестить их у себя, потом искать в кусабе... не, не ко мне. Когда сам по жизни напорюсь на ответ, может быть отпишусь. И вообще меня кусаба достала, ней что не мелочь - всё через великие перепилы движка с предварительным его изучением под микроскопом делается. Если в том что уже сделал новых ошибок не отыщется, впредь только в качестве консультанта буду выступать - говорить что и куда нужно ставить. А уж как вставлять и где это место в кусабе найти - сами мучайтесь.
>> No. 690
Файл 141201120145.png - (210.43KB , 900x650 )
690
>>689
Ну, тогда буду ждать, пока Луняше не будет ЛЕНЬ.
>> No. 691
Файл 141201354145.png - (75.43KB , 650x500 )
691
Но ты безусловно сделал пиздец сколько, в принципе.
Так что с меня тебе... ничего, как ты и просил.

Кусабу, скорее всего, скину на этот же мой сайт. Кто удостоит меня своим присутствием - тому движок, кто не удостоил - щито поделать десу.
Правда, с меня тот хултурух, что делал мне карту и мультиаплоад с вебм, типа брал подписку о нераспространении... Но он обоссавшися халтурух, так что хуй ему.
>> No. 692
>>691
Он конкретно в те файлы изменения вносил? Хочешь я просто строчки кода отдельно выдеру которые исправлял?
>> No. 693
Файл 141201483658.png - (209.94KB , 900x673 )
693
>>692
Нет, не хочу.
>> No. 694
Это я к тому, что у меня всё компактно там. Специально старался по минимуму код менять. Только вот функции переноса и удаления сильно переписал. В основном из-за оптимизации и добавления новых элементов интерфейса. Не то чтобы прям уж так сильно переписал, но достаточно чтобы пришлось выкладывать их целиком. А так буквально одна-две строки. Так что, даже если он конкретно эти файлы правил, всегда можно выложить исправленный код отдельно.
Мне бы не хотелось чтобы ты из-за меня опять во что-нибудь вляпывался.
Всё, я теперь наверное завтра зайду проверить что и как. Если багов не найдёшь, передай Луняше что он может сменить все пароли.
>> No. 695
Файл 141201563316.png - (228.25KB , 900x1165 )
695
Ну, буду сидеть и дальше ждать у моря погоды тогда.
[Возврат] [Весь тред] [Последние 50 постов] [Первые 100 постов]


Удалить пост []
Пароль