Jump to content

Kompilator

User
  • Posts

    214
  • Joined

  • Last visited

Posts posted by Kompilator

  1. Я бы как минимум разбил таблицу на несколько менее объемных. Даже сложно предположить что же там за 160 столбцов.

     

     

    Данные, контент, тех. характеристики.

    Разбил на 3 таблицы, вот основная, в ней теперь осталось только 140 полей.

    
    
    						
  2. Карочи, буду переписывать код.

    Разбивать таблицу на 3, так как с ограничением в 8 Кб, заведомо точно влезет не более 10-ти записей в строку.

    Получится 1-я таблица, все характеристики и прочее, 2-3 таблицы - контент.

    В рег.ру говорят, что ничего сделать не могут, внесением изменений в конфигурацию mySQL они не занимаются.

    А переходить на более дорогой виртуальный выделенный сервер с моей посещаемостью менее 100 чел. нет смысла.


    Резюме.

     

    Кто хочет делать большую таблицу как у меня (160 полей в строке), знайте ! у каждого поля есть заголовок, 700 с чем то байт.

    Если у вас 100 записей по 10 байт, то проблем не будет, но если более 10-ти с длиной более длины заголовка (например 1 Кб и выше), то будет ошибка, т.к. в 8-ми килобайтный лимит гарантированно вмещается только 10 полных заголовков.

  3. Смените тип поля через phpMyadmin. Там увидите много вариантов - 

    1. TINYTEXT
    2. TEXT
    3. MEDIUMTEXT
    4. LONGTEXT

     и т д   Подберите нужный.   

     

    Везде TEXT стоит.

    Обратился в службу поддержки, говорят для устранения ошибки нужно перейти на более дорогой тариф.

    Иначе ограничение в БД :( .

  4. Ругается база данных:

     

    Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

    Перевод:

     

    Размер строки слишком велико (> 8126). Изменение некоторых столбцов в текст или BLOB или с помощью ROW_FORMAT = динамический или ROW_FORMAT = СЖАТЫЙ может помочь. В нынешнем формате строки, BLOB префикс 768 байт хранится встроенный.

     

    Подскажите, можно ли что-то сделать в phpMyAdmin с базой для того, чтобы мои строки влезали в неё ?

    Как же так получается, если вся строка БД не может быть более 8126 байт ? нафига тогда тип ячейки TEXT в котором 65535 ?

    Создатели mySQL  что, грибов наелись когда такую чушь создавали ?

  5. li4e, cпасибо, разобрался.

    Сделал так:

    function revfrm()	{	scrtop = window.pageYOffset;	document.getElementById('revf').innerHTML='<input type="hidden" name="scrtop" value="'+scrtop+'">';	}

    В HTML коде вставил:

    <span id='revf'></span>

    А не работало это потому, что я вставлял <span id='revscr'></span> внутри тега <table></table>, наверное так нельзя и у меня подменная строчка появлялась перед таблицей, вне тега <form></form>, что соответственно не вставлято в массив POST мою переменную.

  6. Покажите вашу функцию отправки запроса.
    echo '<img src="../images/revedit.png"  class="butt_rev" alt="Кнопка редактирования" title="Изменить" style="cursor:pointer" onclick="scrl(); document.forms[\'test\'].submit();">';

    По онклик выполняется сначала - scrl(), в которой подменяется строка - <form action="modsql.html?id=<?php echo $res;?>&scrtop=0" method="post" name="test" onsubmit="return false;">, потом - document.forms[\'test\'].submit(); она и отправляет данные.


    Ладно, тут все заморочено.

    Решил сделать как и раньше, подставлять просто скрытое поле при клике на кнопку:

    function revfrm()	{	scrtop = window.pageYOffset;	document.getElementById('revf').innerHTML='<input type="hidden" name="scrtop" value="'+scrtop+'">';	}

    В HTML коде есть такое:

    <span id='revscr'></span>

    Так вот, если я в document.getElementById('revf').innerHTML пишу - "12345", то текст этот при нажатии появляется на странице.

    А если пытаться вставить - "<input type="hidden" name="scrtop" value="'+scrtop+'">", то значение переменной scrtop пустое.

    Если явно прописать эту строку в HTML - "<input type="hidden" name="scrtop" value="555">", то значение 555 передаётся исправно.

    Получается строка не вставляется ?

    Я пытаюсь в фаерфоксе посмотреть "исходный код страницы", там даже при появлении в окне браузера - "12345", в коде этой записи нет, там только - "<span id='revscr'></span>".

  7. Заголовки при запросе указываете?

    Нет, не указываю.

    Вставил Вашу строчку в функцию JS, вообще не выполняется ничего, или синтаксическая ошибка или ещё что-то.

  8. Теперь такая беда.

    В HTML написано такое:

    <span id='revscr'><form action="modsql.html?id=<?php echo $res;?>&scrtop=0" method="post" name="test" onsubmit="return false;"></span>

    В JS написано:

    function scrl(){  var scrtop = window.pageYOffset;			  document.getElementById('revscr').innerHTML='<form action="modsql.html?id=<?php echo $res;?>&scrtop='+scrtop+'" method="post" name="test" onsubmit="return false;">';}

    Т.е. если жмут на обычную submit, то строка заключенная в <span id='revscr'></span>, остается без изменений.

    Если жмут другой кнопкой, то строка подменяется на новую, с другим значением переменной scrtop.

    Так вот при нажатии другой кнопки отправляется пустая форма, т.е. там в POST штук 30 значений, и все они не определены.

    Как побороть такое ?

  9. как вариант страница закэшировалась в браузере, обновляйте страницу через ctrl+F5 , а не просто F5, и страница будет запрошена с сервера, а не взята из кэша.

    Наверное, про контрл не знал, спасибо.

  10. Что за чертовщина, уже не в первый раз замечаю странную особенность.

    Как только задаю тут вопрос, в 80% случаев практически сразу сам нахожу решение,

    А в этот раз больше, задал вопрос (2-мя постами выше) и обновил свою страницу ..... текст в текстовом поле вывелся !

    Как это ?


    Это очень плохо на самом деле...

    Знаю, но не имею свободного трафика для создания нескольких тем  :unsure: .

  11. Столкнулся тут с неприятной особенностью:

    <textarea type="text" name="obrazec" class="reviev1_place">Мой текст.</textarea>

    , так вот, "Мой текст." выводится в текстовой области ИЕ и Хрома, а в Фаерфоксе нет.

    Как победить это недоразумение ?

    Placeholder не подходит, надо мочь редактировать этот текст.

  12. я бы на вашем месте сохранял позицию скроллов в куках или в локальном хранилище с помощью javascript. получить позицию прокрутки можно как-то так:

    Спасибо, сделал.

    Это работает только в Firefox, в хроме и ИЕ нет:

    function st(){   	window.scrollTo(0,<?php echo $_GET['scrtop'];?>);//работает везде	document.querySelector('.win_left').scrollTo(0,<?php echo $leftstop;?>);//работает только в фаерфоксе	document.querySelector('.win_right').scrollTo(0,<?php echo $rightstop;?>);//работает только в фаерфоксе}

    Про куки, а вдруг они выключены ... не хочу чтобы экран скакал.

  13. нет, достаточно отлавливать событие submit и в обработчике сначала делать какие-то свои манипуляции, а потом делать form.submit();

    Спасибо, ява всетаки великий язык )))

    Вот ещё у меня вопрос - для того, чтобы при обновлении страницы, она открылась на том же самом месте (скролл), делаю так:

    var scrtop = window.pageYOffset;

    , и при открытии новой, так:

    window.scrollTo(0,<?php echo $_GET['scrtop'];?>);

    Так вот, если Вы не забыли, у меня есть левое и правое окно с раскрывающимися списками велофар - http://велосвет.рф/compare.html?idright=32&idleft=32&navmenur=Kompilatorright&navmenul=Kompilatorleft&resimg=1&scrtop=0

    , как мне получить значение скроллов этих двух маленьких окошек ? И как их же при обновлении страницы вставить обратно ?

  14. можете записывать значение в скрытое поле. Но до отправки.

    Получается надо ловить какое-то событие, вроде перемещения скролла ?

     и как только он переместился писать:

    document.getElementById('ID скрытое поле').innerHTML='значение ползунка'

    , так ?

  15. По submit отправляются данные формы способом GET.

    Нужно прикрутить явой одну переменную к посылу, типа как в форме скрытым полем можно добавить ?

    Или придётся весь посыл явой писать, а в форме вместо submit простой button поставить ?

  16. Ну и это, сам себя не похвалишь как говорится )))))

    В самом начале посмотрел на всякие конструкторы сайтов, реклама там всякая и т.д., неизвестно что они там в код внедрили, а тут сам всё сделал и знаю что и где поправить если что.

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

    • Like 1
  17. Вы можете вынести это в отдельный файл, и подключать его, если потребуется. http://php.net/manua...ion.include.php

    Спасибо, это именно то, что я имел в виду =).

    Вы самое главное не останавливайтесь)) как только вам надоест с этой самопиской, вы только скажите. вам сразу же CMS какую нибудь посоветуют. Ну это только когда надоест - значит время пришло)))

    Дело в том, что я уже всё написал: интерактивное сравнение велофар, параметрический их поиск, комментарии.

    Всё.

    Осталось "вылизать" только, подсказок для пользователей добавить и т.п.

    Далее только наполнение сайта контентом.

    Так что СМС мне не грозит, или как оно там называется.

  18. для этого есть база данных

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

    Ладно ещё обращение, там куча строк: авторизация, куки, сессии всякие, сообщения об ошибках, различные ветки обсуждений ..... вобщем не менее 150 строк кода....

    Эх, жаль что нельзя вынести всё это в отдельный файл и потом просто добавлять на него ссылку если потребуются комменты :(

  19. Вот думаю комментарии в отдельный файл вынести и прикреплять к низу каждой страницы.

    Такое вообще возможно ? а то добавлять в код каждой страницы как-то по моему не очень.

  20. Что-то пока не найду как сделать при некорректном выборе, что бы не только сообщение об ошибке возникало, но и скидывало в дефаулт, т.е. что бы поле пустое становилось.

    Разобрался:

    document.getElementById('ID').innerHTML='по умолчанию'
  21. А где вы там увидели число? =)))

    Вот и говорю, сам черт ногу сломит.

    В ассемблере нет никаких стрингов, сплошные числа, красота !

  22.  

    привидите к типу integer

     

    к примеру вот так:

    var min = +this.parentNode.querySelector('[name="min"]').value;var max = +this.parentNode.querySelector('[name="max"]').value;

    Спасибо, так работает.

    Вот я и говорю, ассемблер рулит, там нет таких неоднозначностей.

    Если число, то хоть 10, хоть 1-значное, не надо там ничего к интегеру приводить, он корректно сравнит в любом случае.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy