Loading...
Свободное общение | Серверу кердык.
lotos3 (26.01.2019 в 12:12)
TuT , ну говорят много запросов на одной странице, как это упростить

ну допустим не делать вот так

if(mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '$id' "),0)!=0){
$use=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '$id' LIMIT 1 "));
return '<a href=/profile'.$id.'> '.hsc($use['login']).' </a>';
}

)))
lotos3 , я вот открыл посмотреть инвентарь, там на каждую вещь идет запрос, это без мозга надо быть вообще что бы не выбрать все одетые вещи одним запросом и так весь скрипт, да какой так все скрипты в пабле, вместо одного запроса лепят штук 10 минимум и после каждой математической операции еще и сохранять умудряются.
ну вот такой запрос делал для инвентаря

$query = $db->query("
SELECT
*, `bag`.`id` as `bag_id`, `bag`.`count` as `count_bag`
FROM
`bag`
LEFT JOIN
`items` `item`
ON
`item`.`id` = `bag`.`item_id`
WHERE
`bag`.`user_id` = '".$systemUser->id."'
AND
`bag`.`equip` = '0'
ORDER BY
`item`.`quality` DESC
");

$i = 1;
$results = [];
while ($result = $query->fetch())
{
$results[] = [
'i' => $i,// ячейка
'id' => $result['bag_id'],
'item' => $result['item_id'],
'display' => $result['display'],
'quality' => $result['quality'], // качество предмета
'name' => $result['name'],
'description' => $result['description'],
'count' => $result['count_bag'],
'type' => $result['type'],
];
++$i;
}


после получения массива дальше просто запускают цикл с количеством ячеек в сумке
да, если к такому скрипту еще кэширование запросов приладить будет ваще аут ) У вас вместе сервером и редис ляжет и мемкэш ))
SparkuS , можно пример вывода инвентаря на пхп 5.3
SparkuS (26.01.2019 в 12:26)
ну вот такой запрос делал для инвентаря

$query = $db->query("
SELECT
*, `bag`.`id` as `bag_id`, `bag`.`count` as `count_bag`
FROM
`bag`
LEFT JOIN
`items` `item`
ON
`item`.`id` = `bag`.`item_id`
WHERE
`bag`.`user_id` = '".$systemUser->id."'
AND
`bag`.`equip` = '0'
ORDER BY
`item`.`quality` DESC
");

$i = 1;
$results = [];
while ($result = $query->fetch())
{
$results[] = [
'i' => $i,// ячейка
'id' => $result['bag_id'],
'item' => $result['item_id'],
'display' => $result['display'],
'quality' => $result['quality'], // качество предмета
'name' => $result['name'],
'description' => $result['description'],
'count' => $result['count_bag'],
'type' => $result['type'],
];
++$i;
}


после получения массива дальше просто запускают цикл с количеством ячеек в сумке


ну вот типо того, пусть даже JOIN хотя это тоже говорит что спецификации для SQL не читаем? но это уже лучше чем то, что я сейчас видел у себя в редакторе ))
Сибирский , подскажи пж, как кейсы уровней в бт сократить на пхп 5.3, чтобы 60 ур. Не на пол страницы кода, а минимум
Сибирский , не то чтобы не читаю, недочитываю:) если что-то нужно, просто гуглю и беру готовый пример
lotos3 , формулу выведи или все значения в массив. Например количесвто опыта 1 уровня является базой для расчета всех остальных уровней, и по суммарному опыту функцией смотрим уровень, если уровень выше чем записан у игрока то обновляем игроку запись. Вот кто делает моды разве не читаете инет как делают люди в этом случае? )) Или вам именно такие варианты попадаются ))
lotos3 , 5.3 это типа на mysql? ну просто вместо $db->query введи mysql_query. или тебе цикл вывода на экран нужно?
________
посл. ред. 26.01.2019 в 12:35; всего 2 раз(а); by SparkuS
Онлайн: 9
Время:
Gen. 0.1128
(c) Bym.Guru 2010-2026