PHP.SU

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

Страниц (2): [1] 2 »

> Найдено сообщений: 20
Craken Отправлено: 28 Октября, 2011 - 11:15:11 • Тема: Повтор скрипта • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 136
Можешь ч-з goto
Craken Отправлено: 12 Октября, 2011 - 17:30:35 • Тема: Помогите решить проблему! • Форум: HTTP и PHP

Ответов: 22
Просмотров: 4277
tools! Товарищ Viper имеет в виду существование самой переменной!
Переменная $user_id реально существует? И что она в себе несет?
Craken Отправлено: 12 Октября, 2011 - 17:25:02 • Тема: Не могу убрать пробел • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 221
PHP:
скопировать код в буфер обмена
  1. if (is_array($products['fields']))
  2.     {
  3.            $count = count($products['fields']);  
  4.            
  5.             for ($i = 0; $i < $count; $i++)
  6.             {
  7.                       echo $products['fields']['name'] . ': ' . $products['fields']['value'];
  8.                       if ($i != $count-1)
  9.                           echo ",";
  10.              }  
  11.  }
Craken Отправлено: 09 Августа, 2011 - 04:28:15 • Тема: Наверное регулярка - Помогите • Форум: Регулярные выражения

Ответов: 2
Просмотров: 215
Можно и без регулярки!

PHP:
скопировать код в буфер обмена
  1.  
  2. $text = "<li><a rel='gallery' href='/img/1.jpg' title=''><img alt='' src='/img/1_small.jpg'></a></li>
  3. <li><a rel='gallery' href='/img/2.jpg' title=''><img alt='' src='/img/2_small.jpg'></a></li>
  4. <li><a rel='gallery' href='/img/3.jpg' title=''><img alt='' src='/img/3_small.jpg'></a></li>
  5. <li><a rel='gallery' href='/img/4.jpg' title=''><img alt='' src='/img/4_small.jpg'></a></li>
  6. <li><a rel='gallery' href='/img/5.jpg' title=''><img alt='' src='/img/5_small.jpg'></a></li>
  7. <li><a rel='gallery' href='/img/6.jpg' title=''><img alt='' src='/img/6_small.jpg'></a></li>";
  8.  
  9. $len = strlen($text);
  10.  
  11. for ($i = 0, $count = 0, $new_text = ""; $i < $len; $i++)
  12. {
  13.       $new_text .= $text[$i];
  14.       if ($text[$i] == '<' && $text[$i+1] == '/' && $text[$i+2] == 'l' && $text[$i+3] == 'i' && $test[$i+4] == '>')
  15. {
  16.     ++$count;
  17.     if ($count == 3)
  18. {
  19.      $new_text .= "/li>";
  20.          break;
  21.  }
  22. }
  23. }
  24.  
  25.  


Это если Вы не умеете работать с регулярками! Так Вам будет легче разобраться!
Craken Отправлено: 09 Августа, 2011 - 04:14:55 • Тема: Организация online - offline пользователей • Форум: SQL и Архитектура БД

Ответов: 12
Просмотров: 118
Как вариант Вам можно создать поле в БД со временем последней активности!
ALTER TABLE `profile` ADD `last_active_time` int(11)

Когда пользователь логинится, добавить в запрос:
mysql_query( " update profile set user_status='Online', last_active_time = UNIX_TIMESTAMP() where user_email='".$_POST['email']."' and user_password='".$_POST['password']."' ");

Ну а там где вызов количества юзеров в онлайне, добавить в условие "AND last_active_time > (UNIX_TIMESTAMP()-тут количество секунд)"

Конечно в таком случае при каждом действии юзера придется обновлять запись в БД:
mysql_query("UPDATE profile SET last_active_time = UNIX_TIMESTAMP() WHERE тут словия идентификации юзера");
Craken Отправлено: 10 Июля, 2011 - 13:33:21 • Тема: Есть проблема хранения 3000 переменных • Форум: Хранение данных, их вывод и обработка

Ответов: 11
Просмотров: 2807
Nosferatu пишет:
Здравствуйте. Мне очень необходима помощь знающих людей.

Есть проблема хранения 3000 переменных, каждая переменная принимает значение 0 или 1. Данные настройки хранятся в БД.

Я додумался до четырёх решений.
1. Хранить всё как элементы в Массива, серилизовать, сжимать и хранить в БД как текст.
2. Хранить всё как Бинарное число. Редактировать как не знаю.
3. Хранить как Десятичное число. Редактировать как не знаю.
4. Хранить как Строку. Редактировать как строку.
5. Хранить каждую переменную отдельно в БД.
Смог реализовать первый вариант, но получилась строка в 6000 символов. Это очень много, если учесть что первоначально переменных 3000. Первый реализованный вариант мне не нравится, хоть он и является очень простым для работы.

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


Честно говоря я бы воспользовался вариантом номер 5.
БД на то и сеть База Данных, чтобы хранить данные в любом виде и сколько нужно! Тем более 3000 записей для БД - это семечки...
(Добавление)
По поводу скорости - тут уж смотря какой движок используется + кэширование!
Короче тут и скорость работы и размер занимаемой памяти зависит от того, как Вы настроите саму БД!
Craken Отправлено: 19 Февраля, 2011 - 19:18:29 • Тема: Клас для опроса. • Форум: Пользовательские функции

Ответов: 9
Просмотров: 1010
При создании класса - лучше инициализировать переменные в конструкторе!
И кстати перегружать функцию rand() не стоит, хоть она и в классе! Лучше переназвать!
Craken Отправлено: 16 Февраля, 2011 - 11:40:44 • Тема: тормоза с Mysql • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 66
1) Чем больше полей в Mysql использую индексы, тем медленнее будет запрос типа Апдейт или Инсерт! (Это так... к стати)

2) Действительно интересно какое железо (и + версия мускуля)
3) Вы тип таблиц не меняли?

10000 записей - это семечки... так что советую посмотреть на структуру таблицы (возможно случайно поставили тип таблицы например Архив)
Craken Отправлено: 07 Января, 2011 - 17:21:18 • Тема: Как узнать существует ли запись? • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 70
LifePlay
Цитата:
Как увеличить значение ячейки на один

красивее так:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. mysql_query("UPDATE cat_banavtorip SET failure=failure+1 WHERE ip='".$ip_l."'");
  3.  


Цитата:
PHP:
скопировать код в буфер обмена
  1.    1.
  2.       $query = mysql_query('SELECT * FROM `cat_banavtorip` WHERE `ip`="'.$ip_l.'"');
  3.    2.
  4.        
  5.    3.
  6.       if($query == FALSE)
  7.    4.
  8.               {
  9.    5.
  10.               $banavtorip = 0;
  11.    6.
  12.               }
  13.    7.
  14.       else
  15.    8.
  16.               {
  17.    9.
  18.               $info_bann = mysql_fetch_assoc($query);
  19.   10.
  20.               $banavtorip = $info_bann['failure'];
  21.   11.
  22.               }


тогда уже так:

PHP:
скопировать код в буфер обмена
  1.  
  2.    1.
  3.       $query = mysql_query('SELECT * FROM `cat_banavtorip` WHERE `ip`="'.$ip_l.'"');
  4.    2.
  5.        
  6.    3.
  7.       if(!mysql_num_rows($query))
  8.    4.
  9.               {
  10.    5.
  11.               $banavtorip = 0;
  12.    6.
  13.               }
  14.    7.
  15.       else
  16.    8.
  17.               {
  18.    9.
  19.               $info_bann = mysql_fetch_assoc($query);
  20.   10.
  21.               $banavtorip = $info_bann['failure'];
  22.   11.
  23.               }
  24.  
Craken Отправлено: 06 Января, 2011 - 07:15:11 • Тема: Как узнать существует ли запись? • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 70
В этом случае мускуль вернет "Empty query", и массив нечем заполнить!
Так что нужно делать проверку!
А почему бы не сделать так?

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $sql = mysql_query("SELECT * FROM cat_banavtorip WHERE ip = ".$ip." LIMIT 1");
  4.  
  5.  if (mysql_num_rows($sql) > 0)
  6.  {
  7.     $result = mysql_fetch_array($sql);
  8.  
  9.    // ну или как у Вас $result = mysql_fetch_assoc($sql);
  10.  
  11.  }
  12.  
  13. ?>
  14.  
Craken Отправлено: 10 Сентября, 2010 - 07:18:20 • Тема: Работа с ссылками! • Форум: Регулярные выражения

Ответов: 10
Просмотров: 864
JustUserR пишет:
Craken пишет:
Товарищи, как возможно сделать так, чтобы оно не "трогало" картинки и ссылки на "http://mysite.ru"?
Для того чтобы в приведенном регулярном выражении отключить автоматическое формирование гиперссылок для тех URL-адресов которые уже указывают на перенаправляемый домен - возможно использовать предварительный негативный просмотр вперед с фиксированным шаблоном этого домена - то есть начало регулярного выражения можно модифицировать примерно так (https?:\/\/(?!mysite\.ru)[-A-Z0-9.]+(?:

Спасибо за понятный ответ!
Конечно интересно на сколько такая конструкция замедляет вывод текста!
Craken Отправлено: 08 Сентября, 2010 - 08:06:29 • Тема: Работа с ссылками! • Форум: Регулярные выражения

Ответов: 10
Просмотров: 864
Joo пишет:
Вот так например:
PHP:
скопировать код в буфер обмена
  1. $result = preg_replace('/\b(https?:\/\/[-A-Z0-9.]+(?:\/[-A-Z0-9+&@#\/%=~_|!:,.;]*)?(?:\?[A-Z0-9+&@#\/%=~_|!:,.;]*)?)\b/im', 'http://mysite.ru/link.php?=$1', $content);


Этот вариант отлично работает со ссылками!
Только одно НО! Товарищи, как возможно сделать так, чтобы оно не "трогало" картинки и ссылки на "http://mysite.ru"?
Спасибо огромное заранее!
Craken Отправлено: 14 Августа, 2010 - 08:57:11 • Тема: Вопрос по парсингу через preg_match_all • Форум: Регулярные выражения

Ответов: 5
Просмотров: 346
Champion пишет:
На место дефисов такую регистрозависимую регулярку:
>[^а-яА-Я]*((?:[А-Я][а-я]+){2,})[^а-яА-Я]*<

Сматчатся те вещи, в которых более одной фамилии.

Спасибо конечно! Но не совсем то что нужно!
Интересует именно поиск например фамилии "Петров" в:
"<td>СидоровПетров</td>" или "<td>ПетровСидоров</td>" или просто "<td>Петров</td>"
То есть может быть как угодно! И важно что вставляется между ""<td></td>!
Я так понял что вот так не получится "<td>.*?Петров.*?</td>"
Craken Отправлено: 13 Августа, 2010 - 15:39:20 • Тема: Вопрос по парсингу через preg_match_all • Форум: Регулярные выражения

Ответов: 5
Просмотров: 346
Привет всем!
Уж так получилось, что кое-какая информация пишется в файл и причем в одну строку!
Вытащив эту строку, мне нужно получить информацию по рег. выражению!
Вот что имеется:
PHP:
скопировать код в буфер обмена
  1. preg_match_all("/<tr><td>\d*?<\/td><td>.*?<\/td><td>\d*?<\/td><td>.*?<\/td><td>\d*<\/td><td>.*?<\/td><td>\d*<\/td><td>.*?<\/td><td>\d*<\/td><td>.*?<\/td><td>.*?<\/td><td>-----------------<\/td><td>.*?<\/td><\/tr>/im", $text, $match);


На том месте, где много дефисов должна становится фамилия человека! Но тут возникла проблема!
Скрипты которые добавляют записи работают криво, и если там становится 2 фамилии, то они могут стать так: "ИвановСидоров" или "СидоровИванов" или может бить просто одна какая-то!
То есть мне нужно узнать, сколько таких вот совпадений по каждой из фамилий.. Но как я уже упоминал, фамилия может быть не одна (Всего около 20-ти фамилий)!
Пробовал так: - не работает! Практически все что мне нужно, так указать что перед фамилией или после нее может быть еще одна или может быть пусто!
Всем заранее Спасибо за помощь!
Craken Отправлено: 11 Июля, 2010 - 01:20:18 • Тема: ДОзапись в файлы • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 47
Приветствую Вас товарищи!
Ситуация следующая:
Есть движок, есть конфиг файл config.php!
Например пускай его содержание будет таким:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $a = '1';
  4. $b = '2';
  5. $c = '3';
  6. $d = '4';
  7. $x = '5';
  8. ?>
  9.  


Подскажите пожалуйста, каким образом возможно например для переменной "с" поставить значение не 3 а 8? То есть нужно как-то скриптом переписать число это!
Всем заранее Огромное Спасибо!

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB