Xwab
Форумыnavigate_nextПрограммирование на PHP

Топ: Помощь с алгоритмом
Сообщения
TOOZ

Имеется таблица, с записями : id и show, id это понятно, а show отвечает за отображение (true/false).

Нужно сделать на странице вывод ссылок(навигация <= | => ) след. и пред. для ID только с параметром show=true.

Например :
<a href="/id1">Назад</a>||<a href="/id4">Вперед</a>
^ id=3 выкинули, так как show = false.
Без нагибания БД не могу сделать  мб есть оптимальней способ?

03 Фев 2012, 20:53
mixlion

TOOZ, SELECT `id` FROM `table` WHERE `show` = 'true` and `id` > select_id

03 Фев 2012, 21:06
TOOZ

mixlion, во она, моей мечты! Спасибо, про ">" и забыл...

03 Фев 2012, 21:19
M0rtiis

TOOZ, SELECT `id` FROM `table` WHERE `id` > select_id and `show` = 'true`

или как выше только индекс на show повесь

09 Фев 2012, 1:17
Fresh

DEL. Решил

10 Фев 2012, 2:14
svoloch

Сломал уже весь моск. Буду рад любой посильной помощи. Суть сабжа в чем. Пишу ПВП. Не соображу, как написать бой. В таблице users имеются поля hp, armor, krit, power у каждого игрока. Как просчитать удар одного и второго игрока? В power записана максимальная сила удара. Каждый игрок бьет на какую-то долю от максимальной силы.

В общем примерно так. Кто поможет, буду благодарен. Кину копеечку на печенюшку.

16 Фев 2012, 2:10
PeraX

svoloch, rand(); ?

16 Фев 2012, 2:43
svoloch

PeraX, да там один ранд не пойдет. надо высчитать силу удара, с уче омм защиты. приплюсовать шанс критического удара.

16 Фев 2012, 3:33
M0rtiis

svoloch,
да любая формула. в чем проблема то? самый примитивный пример:

$hm = $a*($dm/$d);
$hm = mt_rand(round($hm-$hm*$k), round($hm+$hm*$k));

if(mt_rand(0, 100) < $c) $hm *= 2;

$hm - отнимаемое хп.
$a - атака.
$d - защита жертвы.
$dm - некая максимально-возможная защита.
$k - отклонение, для разброса цифер. чтото типа 0.2.
$c - шанс крита.

16 Фев 2012, 4:14
Jadson

Пришла в голову одна мысль, а как осуществить её придумать не могу, может из-за того что поздновато уже.
В общем суть такая, есть сетка, допустим 50х50, все клетки (2500) заполняющие эту сетку внесены в бд по координатам X и Y, 1-1, 1-2 и т.д. Вот как например с точки 1-2 добраться до точки с координатами 24-16, вроде как можно через цикл for сделать, условие есть что можно только по 1 клетке передвигаться за раз, то есть вызов будет на каждом новом шаге, пока только надумал чтоб сначала передвижение было до совпадения координат X, потом Y, думал может тут будут желающие подумать  с утра буду решать эту проблему, вдруг тут утром найдутся люди которые помогут

24 Мар 2012, 1:00
Ответить на тему