В общем есть скрипт который выводит данные из таблицы на страницу сайта. Грубо говоря TOP пользователей.
<?php
require_once("config.php");
$query = "SELECT char_name, pvpkills FROM characters ORDER BY pvpkills DESC LIMIT $pk";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
print "<center><font color=ff0000> Name PVP</font><table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</center></table>\n";
?>
Проблема в том, что скрипт выводит данные из базы при каждом обновление страницы, что сильно нагружает базу данных да и канал от сервера к хостингу сайта. Знаю что можно сделать какимто образом так чтобы скрипт запрашивал данные скажем раз в 10 минут после чего просто выводил уже готовую информацию на сайт не соединяясь с сервером. Подскажите как это можно сделать, буду благодарен если выложите сразу готовое решение.
Спустя 5 минут, 28 секунд (4.09.2010 - 16:43) kondor написал(а):
Еще один вопрос. Такая схема, есть акаунт, на акаунте есть N персонажей, как можно вывести каждого персонажа в отдельности на страницу так что-бы в последствии можно было сделать их в виде ссылки?
Спустя 5 минут, 45 секунд (4.09.2010 - 16:49) suslik написал(а):
Готовое решение писать лениво))
А в двух словах короткое решение:
1. записать результат в html-файл, а не выводить принтом, инклюдить этот файл.
2. добавить условие: если время создания файла более 10 мин, перезаписать его.
Если есть вопросы по реализации задавай.
А в двух словах короткое решение:
1. записать результат в html-файл, а не выводить принтом, инклюдить этот файл.
2. добавить условие: если время создания файла более 10 мин, перезаписать его.
Если есть вопросы по реализации задавай.
Спустя 1 минута, 13 секунд (4.09.2010 - 16:50) suslik написал(а):
kondor, второй ваш пост из области пойди туда, сам знаешь зачем)))
какие аккаунты, что за персы, где живут??
какие аккаунты, что за персы, где живут??
Спустя 8 минут, 40 секунд (4.09.2010 - 16:59) kondor написал(а):
игра lineage 2 пишу на сайт свой, личный кабинет есть таблица accaunts в которой хранятся данные по логину и паролю акаунта, и есть таблица charters в которой находятся данные по персонажам на акаунте. Тоесть грубо говоря есть аккаунт Qaz и в этом акаунте есть 3 персонажа 123, 321, 213 и мне хочется чделать так чтобы я потом эти выведенные данные мог использовать для следующих SQL запросов в скрипте.
На счет обновления файла. Это все понятно, не понятно каким образом это сделать, дайте пример хотябы...
На счет обновления файла. Это все понятно, не понятно каким образом это сделать, дайте пример хотябы...
Спустя 20 минут, 41 секунда (4.09.2010 - 17:19) suslik написал(а):
require_once("config.php");
$file_cache = 'namePVP.cache.html';
$content = '';
if(file_exists($file_cache) && time()-filemtime($file_cache))<10*60)
{
require_once ("$file_cache");
}else
{
print writeCache();
}
function writeCache()
{
$query = "SELECT char_name, pvpkills FROM characters ORDER BY pvpkills DESC LIMIT $pk";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$content .= "<center><font color=ff0000> Name PVP</font><table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$content .= "\t<tr>\n";
foreach ($line as $col_value) {
$content .= "\t\t<td>$col_value</td>\n";
}
$content .= "\t</tr>\n";
}
$content .= "</center></table>\n";
file_put_contents($file_cache, $content) or die("Can't write file!");
return $content;
}
держи быдло-код, я не тестил, может где и очепятался.
по персам -- ну дык формируй ссылки ввида
<a href="персонаж.пхп?id=123>персонаж 123</a>
а на странице персонажа добавляй к запросу WHERE `id` = '$_GET['id']'
Спустя 12 дней, 19 часов, 13 минут, 12 секунд (17.09.2010 - 12:33) Guest написал(а):
Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Спустя 1 минута, 21 секунда (17.09.2010 - 12:34) kondor написал(а):
<?php
require_once("config.php");
$file_cache = 'namePVP.cache.html';
$content = '';
if(file_exists($file_cache) && time()-filemtime($file_cache)>10*60)
{
require_once ("$file_cache");
}else
{
print writeCache();
}
function writeCache()
{
$query = "SELECT char_name, pvpkills FROM characters ORDER BY pvpkills DESC LIMIT $pk";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
print "<center><font color=ff0000> Name PVP</font><table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</center></table>\n";
file_put_contents($file_cache, $content) or die("Can't write file!");
return $content;
}
?>
и получаю
Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
хотя запросы в другом скрипте работают.
Спустя 17 минут, 26 секунд (17.09.2010 - 12:51) inpost написал(а):
Страница будет: profile.php?id=1
SELECT char_name, pvpkills FROM characters WHERE ид_персонажа=(int)$_GET['id']
echo $hero['name'];
SELECT char_name, pvpkills FROM characters WHERE ид_персонажа=(int)$_GET['id']
echo $hero['name'];
Спустя 13 минут, 35 секунд (17.09.2010 - 13:05) kondor написал(а):
Цитата (inpost @ 17.09.2010 - 09:51) |
Страница будет: profile.php?id=1 SELECT char_name, pvpkills FROM characters WHERE ид_персонажа=(int)$_GET['id'] echo $hero['name']; |
Это про что?
Спустя 1 минута (17.09.2010 - 13:06) kondor написал(а):
Лучше скажите как скрипт до ума довести. Он зараза не хочет работать как бы я не пытался его заставить. Он выводит данные в фаил HTML но не раз в 60 секунд а при каждом обновлении страницы.
Спустя 7 минут, 41 секунда (17.09.2010 - 13:14) Renden написал(а):
kondor
В cron поставь)
В cron поставь)
Спустя 22 минуты, 12 секунд (17.09.2010 - 13:36) kondor написал(а):
Если бы у меня сайт стоял на сервере базара 0. А вот ка кэто на хостинге поставить. Да и лишний софт это лишние дыры в защите.
Спустя 10 часов, 4 минуты, 7 секунд (17.09.2010 - 23:40) suslik написал(а):
Цитата (kondor @ 17.09.2010 - 10:36) |
Да и лишний софт это лишние дыры в защите. |

Не о том переживаете.
с ошибкой sql-а справился? запрос в моём коде тот же что и был у тебя.
если перезаписывает файл раньше минуты, попробуй отдебажить правильно ли время файла проверяется и наличие. вообще namePVP.cache.html записывается?