Привет.
Мой сайт крутиться на выделенном сервере, сразу скажу, сервака хватает по параметрам, вся проблема в коде. Мой сайт посылает запросы и не закрывает их, и MySQL просто отказывается работать (выдает Too many connections).
Скриншот:
Ну вот, что мне делать, как решить проблему? Друг подсказал, что нужно написать функцию которая будет закрывать соединения которые продолжаются более > 5-10 сек.
$r=@sql_query("SELECT u.*".($CURUSER ? ", (SELECT COUNT(*) FROM karma WHERE type='user' AND value = u.id AND user = $CURUSER[id]) AS canrate":"")." FROM users u WHERE id=$id") or sqlerr(__FILE__,__LINE__);
$user=mysql_fetch_array($r) or bark("Нет пользователя с таким ID $id.");
}else{
$r=@sql_query("SELECT * FROM users WHERE username='".$n."'") or sqlerr(__FILE__,__LINE__);
$user=mysql_fetch_array($r) or bark("Нет пользователя с таким Username '".$n."'.");
На крайняк если так не получится, то хотелось бы вот так: http://mysite[dot]com/users/1_Nick_Name - где 1 айди юзера, где nick_name - ник пользователя. Но лучше было бы так как я писал сверху.
Есть таблица persons, и torrents.
Ячейки таблицы persons: id, name
Ячейки таблицы: torrents: id, descr
Задача:
Примерно один или два раза в неделю проводить обновление:
В таблице persons в ячейке name - хранится имя и фамилия персоны.
В таблице torrents в ячейке descr - хранится описание релиза.
Нужно брать содержимое ячейки name (имя и фамилия) проверять нет ли такого в содержимом ячейки descr (описание релиза), если такое находится, то в содержимом ячейки descr (описание релиза) заменяеся имя и фамилия актера на какую нибудь ссылку, например persons.php?id=ID, если не находится то просто пропускаем релиз.
Теперь о количествах записей в таблицах:
Таблица torrents, там будет около ~2000-3000 записей.
Таблица persons, количество записей так-же пока что не известно, но с уверенностью могу сказать что их там будет не меньше 5000.
Ну, вот ребята помогите построить нормальный код.
Свою версию кода я выкладывал в соседней теме, вот здесь: http://forum.php.su/topic.php?forum=71&topic=4086, но после моего тестирования она ни грамма не оправдала моих надежд, одним словом мне чуть глаза не повыпадали.
Он ищет в описание релиза имя актера, если такое находит, то это слово преобразовывает в ссылку. Ну, вот сразу пару вопросов:
1. Можно как нибудь уменьшить код? Так как в будущем будет давать не слабую нагрузку, а не хотелось бы.
2. Как Вам реализация кода, сойдет? (Добавление)
Да ну нафик такой код, по 3 запроса на страничке, где используется функция, у меня этот вставлен в функцию обратывания BB кодов... (Добавление)
Жесть, таким кодом можно угробить нахер сервак.
+1 слово, +1 запрос, лучше уже при записи в базу редактировать код... (Добавление)
Короче тему можно закрывать...............
Привет.
Расскажу вкратце, чего я от Вас хочу, если чего нибудь не будете понимать, пишите, не стесняйтесь.
В общем, есть табличка persons, в ней есть ячейка name, в ней хранится фамилия и имя на английском языке, иногда на российском.
В движке у меня есть функция format_comment, она обрабатывает BB коды.
Нужно в эту функцию дописать код, чтобы делался запрос в базу данных вытягивал имя и фамилию, если такая фамилия и имя есть в тексте то чтобы имя и фамилия преобразовывались в какую нибудь ссылку.
Тип поля name в базе: varchar(40).
На счет нагрузки: Хотелось бы минимум загрузки, та как функция используется очень часто, и в одном тексте может быть до 30-50 фамилий.
Если чего нибудь непонятно задавайте свои вопросы ниже.