PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (10): В начало « ... 2 3 4 5 6 [7] 8 9 10 »

> Найдено сообщений: 139
skiphog Отправлено: 28 Января, 2015 - 18:42:11 • Тема: Оптимизировать подключение к бд • Форум: Вопросы новичков

Ответов: 16
Просмотров: 611
GoDr пишет:
да о чём вы вообще говорите??????

Ну хочется человеку поиграться, пусть поиграется Улыбка
--
SWORDMAN погуглите по кешированию - информации много.

--
Вот самый простой пример Радость
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //проверяете существует ли файл с кешем.
  3. if(!is_file('cache.php')) {
  4.   //Если файла нет, то подключаетесь к БД, достаете данные, делаете с ними всякую всяку
  5.   $arr = array();
  6.   for($i = 0;$i < 100;$i++) {
  7.     $arr[] = uniqid();
  8.   }
  9.   //Включаем буферицазию
  10.   ob_start();
  11. ?>
  12.   <h1>Привет мир</h1>
  13.   <section>
  14.     <p>Эти данные пришли из БД, сфоримрованные очень тяжелым запросом и пропущеные через 100 функций</p>
  15.     <ul>
  16.     <?PHP
  17.       foreach($arr as $value) {
  18.         echo '<li>', $value,'</li>',"\n";
  19.       }
  20.     ?>
  21.     </ul>
  22.   </section>
  23. <?PHP
  24.   //получаем содержимое буфера
  25.   $cache = ob_get_clean();
  26.   //сохраняем в файл
  27.   file_put_contents('cache.php',$cache);
  28. }
  29. //выводим файл или в переменную запишите, как хотите ...
  30. readfile('cache.php');
  31.  
  32. // А потом в обработчике, где происходит регистрация, после успешной регистрации удалите кеш-файл
  33. /*
  34. if(is_file('cache.php')) {
  35.   unlink('cache.php');
  36. }
  37. */

P.S. GoDr select count(*) быстрее, чем select count(`id`) Язычок
skiphog Отправлено: 28 Января, 2015 - 17:07:54 • Тема: Оптимизировать подключение к бд • Форум: Вопросы новичков

Ответов: 16
Просмотров: 611
Для этого cron вам не нужен.

Закешируйте уже готовые данные в мемкеш или в файл и тяните их оттуда.
Обновляйте кеш, только тогда, когда кто-то зарегистрируется.
skiphog Отправлено: 28 Января, 2015 - 10:01:10 • Тема: AJAX не передает данные методом POST • Форум: Вопросы новичков

Ответов: 2
Просмотров: 466
CODE (javascript):
скопировать код в буфер обмена
  1. data: $('#form').serialize,
  2. //исправьте на
  3. data: $('#form').serialize(),
skiphog Отправлено: 27 Января, 2015 - 19:29:35 • Тема: jquery: арифметическая операция не производится • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 803
Ваш скрипт здесь работает.
http://jsfiddle[dot]net/a7etxm1k/1/
skiphog Отправлено: 27 Января, 2015 - 10:00:03 • Тема: В чём может быть проблема • Форум: HTTP и PHP

Ответов: 4
Просмотров: 970
У вас функция называется app_who() и селект с тем же именем и id <select name="app_who" id="app_who" size="5">
--
Смените название функции и будет вам счатье Улыбка
skiphog Отправлено: 27 Января, 2015 - 08:48:39 • Тема: jquery: арифметическая операция не производится • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 803
То, что вы показали, должно корректно отрабатывать.
Не зная общей картины вашего скрипта, предположу две вещи.

1. Где-то в скрипте вы опечатались.

2. Где-то в скрипте вы пытаетесь изменить значение атрибута data-num и после этого опять обращаетесь к num через $(селектор).data().
А т.к. data() кеширует изначальное значение, то после того как вы его измените , вызов data() вернет только изначальный результат.

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. //Попробуйте изменить это
  3. var $checkNum = parseInt($(this).data('num'));
  4. //на
  5. var $checkNum = this.dataset.num * 1; // умножим на единицу, что бы значение привести к числу
  6. // Произведите все манипуляции
  7. //проверьте результат
  8.  
skiphog Отправлено: 26 Января, 2015 - 19:38:07 • Тема: Получение данных из атрибута jquery • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 827
Aricus пишет:
... можно ли использовать таким образом data-index во всех остальных тегах? То есть, чтобы где-нибудь не всплывала ошибка, и атрибут не оказывал влияние на отображение страницы.


Атрибут data-* можно использовать в любых тегах с *любым названием. Он никак не влияет на отображение страницы.

CODE (html):
скопировать код в буфер обмена
  1. <div data-anyvalue="something" id="id">
  2.    что угодно
  3. </div>


Получить значение атрибута
CODE (javascript):
скопировать код в буфер обмена
  1.  // без jQuery
  2. var anyVar = document.getElementById('id').dataset.anyvalue;
  3. // C использованием jQuery
  4. var anyVar = $('#id').data('anyvalue');
skiphog Отправлено: 26 Января, 2015 - 17:08:35 • Тема: Замена значений в БД • Форум: Напишите за меня, пожалуйста

Ответов: 23
Просмотров: 353
GoDr пишет:
Может кто ещё проверит... а что что-то даже обидно у меня работает, а у товарища нет

Ваш скрипт работает. Единственно, забыли заэкранировать Улыбка
При использовании данной функции транслитирации + нет экранирования ковычек.
Такие слова, как Д'артаньян или Жесть не будут изменены.

LIME пишет:
skiphog забыл WHERE
он так все потрет нафиг в одно значение

http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]n-duplicate[dot]html
skiphog Отправлено: 26 Января, 2015 - 15:46:46 • Тема: Замена значений в БД • Форум: Напишите за меня, пожалуйста

Ответов: 23
Просмотров: 353
LIME ну смотри, если у тебя в таблице 100 записей, то решение GoDr - это сделать 100 маленьких запросов на изменение.

Мое же решение - всего 1 запрос, но длинный, через duplicate key update

--
Т.е. он в цикле выполняет запросы, а я в цикле только составляю его, а только потом выполняю.
skiphog Отправлено: 26 Января, 2015 - 15:38:46 • Тема: Замена значений в БД • Форум: Напишите за меня, пожалуйста

Ответов: 23
Просмотров: 353
LIMEСоздал тестовую базу данных на основе zmeyx
Выполнил запрос, все корректно отработало и ничего не затерлось.
--
ps.
rtrim - что бы убрать последнюю запятую в запросе после (....),(.....),(.....), <- вот эту
skiphog Отправлено: 26 Января, 2015 - 15:24:07 • Тема: Замена значений в БД • Форум: Напишите за меня, пожалуйста

Ответов: 23
Просмотров: 353
Можно попробовать выбрать данные, транслетилировать и запулить одним, длинючим запросом.
PHP:
скопировать код в буфер обмена
  1. //подключаемся к БД
  2. $db = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8','user','password');
  3. //делаем запрос на все записи
  4. $stmt = $db->query('select virtuemart_product_id as id,slug from j25_virtuemart_products_ru_ru');
  5. //подготавливаем следующий запрос
  6. $sql = 'insert into j25_virtuemart_products_ru_ru (virtuemart_product_id,slug) values';
  7. // крутим в цикле результат и заполнаям новый запрос
  8. while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  9.   $sql .= ' ('.$row['id'].', '.$db->quote(russian_transliterate($row['slug'])).'),';
  10. }
  11. // удаляем последнюю запятую
  12. $sql = rtrim($sql,',');
  13. // добавляем duplicate key
  14. $sql .= ' ON DUPLICATE KEY UPDATE slug = values(slug)';
  15. //выполняем запрос
  16. $db->query($sql);


В итоге запрос будет один и выглядеть будет так
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO j25_virtuemart_products_ru_ru (virtuemart_product_id,slug) VALUES (1, 'текст'), (2, 'текст'), (3, 'текст') ON DUPLICATE KEY UPDATE slug = VALUES(slug)


Что в итоге лучше отработает, толпа мелких запросов или один большой - фиг знает Улыбка надо проверять Улыбка
--
Единственный момент. Если вы пытаетесь сделать ЧПУ, то ваша функция траслитерации не подходит. Добавьте в нее удаление апострофов и прочих символов, а пробелы замените на тире, при этом удаляйте последнее тире.
skiphog Отправлено: 26 Января, 2015 - 08:26:53 • Тема: Выборка из двух таблиц! • Форум: Вопросы новичков

Ответов: 4
Просмотров: 189
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT tbl1.*,tbl2.* FROM tbl1 JOIN tbl2 ON tbl2.id_rubric = tbl1.id WHERE tbl1.rubric = 'sport'
skiphog Отправлено: 23 Января, 2015 - 15:38:39 • Тема: Запрос, массив • Форум: Вопросы новичков

Ответов: 9
Просмотров: 344
--
skiphog Отправлено: 23 Января, 2015 - 15:26:26 • Тема: Запрос, массив • Форум: Вопросы новичков

Ответов: 9
Просмотров: 344
Уточните, что значит привязать?
- В массиве должны быть отдельно линки и категории?
- Или нужно сконкатенировать Линк и категории?
Что должно получится на выходе?

--
P.S.
PHP:
скопировать код в буфер обмена
  1. $urls = $row;
  2. // исправьте на
  3. $urls[] = $row;
skiphog Отправлено: 23 Января, 2015 - 14:56:32 • Тема: Запрос, массив • Форум: Вопросы новичков

Ответов: 9
Просмотров: 344
PHP:
скопировать код в буфер обмена
  1. $url_z = array();
  2. while($row = $result->fetch_assoc()) {
  3.   $url_z[] = $row['link'];
  4. }
  5. var_dump($url_z);

Страниц (10): В начало « ... 2 3 4 5 6 [7] 8 9 10 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB