Автор Тема: трудный вопрос  (Прочитано 4393 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн andtar

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ofp.dem.ru
трудный вопрос
« : 20 Августа 2002, 10:44:51 »
Значит так:
 
Я делаю ссылку популярные миссии (для игры). Популярные - это те, у которых больше загрузок, т.е. скачиваний.
Файлы скачивания лежат в дирректории data/load/file.txt где file - это номер идентификатора миссии.
Сам файл миссии лежит в data/mission.txt в нем записано:
1^^mission.php?action=ot&id=1^^имя миссии^^ ...etc...
2^^mission.php?action=ot&id=2^^имя миссии^^ ...etc...

Также существует файл data/load/1.txt и data/load/2.txt
Количество скачиваний определяет count. Для миссии под номером 1:
$array = file ("data/load/1.txt"); $count = count ($array);
$count - это кол-во скачиваний для миссии id=1

Теперь главное:
нужно расположить по порядку все миссии от больших закачек к меньшим
миссий может быть сколько угодно, ID их возрастает 1,2,3,4...

В цикле, когда они уже располагаются по порядку, нужно писать:



    $href 
"mission.php?action=ot&id={$d[0]}";
    echo 
"<a href=$href>$d[3]</a>
"
;
    echo 
"Версия: $d[5]
"
;
    echo 
"Требует дополнения: $d[6]
"
;
    echo 
"Размер файла: $d[2] Кб
"
;
    echo 
"Автор: <a href=mailto:$d[9]>$d[8]</a>

"
;



Пока все, ечли че не понятно, пишите...
the cold war is not over...

Оффлайн andtar

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ofp.dem.ru
трудный вопрос
« Ответ #1 : 20 Августа 2002, 10:49:41 »
и вот еще забыл написать:
когда я скачиваю миссию, загрузки прибавляются на 2, а не на 1 как надо. Текст такой:

if ($action == "download") { # Если файл скачан
  
if (!$id) { die ("<h1>ID файла не определен</h1>");}
  
$file_load "data/load/{$id}.txt";
  @
$f fopen ($file_load"a");
  
$data $date."~".$ip."\\n";
  @
fputs ($f$data);
  @
fclose ($f);
  
$href_location $server."mis/".$id.".zip";
  
header ("Location: $href_location");
}
the cold war is not over...

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
трудный вопрос
« Ответ #2 : 20 Августа 2002, 11:22:24 »
Мдя... Любят же некоторые усложнять... А ты все счетчики в одном файле хранить не мог?
Конкретизирую задачу: есть файлы. Количество закачек файла - это количество строк в файле. Тебе надо вывести файлы в порядке, соотв. количетсву закачек. Так?
TANSTAAFL

Оффлайн andtar

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ofp.dem.ru
трудный вопрос
« Ответ #3 : 20 Августа 2002, 12:04:17 »
Цитировать
Мдя... Любят же некоторые усложнять... А ты все счетчики в одном файле хранить не мог?
Конкретизирую задачу: есть файлы. Количество закачек файла - это количество строк в файле. Тебе надо вывести файлы в порядке, соотв. количетсву закачек. Так?


все правильно
the cold war is not over...

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
трудный вопрос
« Ответ #4 : 20 Августа 2002, 12:15:47 »
Кидаем все в массив:
$massiv[$kol-vo_skachek]="путь до файла".
далее натравливаем f-ю
uksort ($massiv);
далее foreach
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн andtar

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ofp.dem.ru
трудный вопрос
« Ответ #5 : 20 Августа 2002, 13:13:58 »
Цитировать
Кидаем все в массив:
$massiv[$kol-vo_skachek]="путь до файла".



до какого файла? Файл с миссиями только один: data/mission.txt
the cold war is not over...

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
трудный вопрос
« Ответ #6 : 20 Августа 2002, 13:24:40 »
Цитировать
до какого файла?

Значит название миссии.

Чё придераешься-то???
"до какого файла?" написал, для случая со счётчиком  скачивания файлов.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн andtar

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ofp.dem.ru
трудный вопрос
« Ответ #7 : 20 Августа 2002, 13:40:37 »
Подумайте пока над этим:

В массив надо занести $name
где $name = $count."~".$id;
затем сортировать массив, потом explode вывести $id.
Т.е. получится в массив просортируется в правильном порядке, и будет содержать все IDы по порядку.

И теперь надо вывести окончательный цикл, вроде:
for ($n=0; $n
the cold war is not over...

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
трудный вопрос
« Ответ #8 : 20 Августа 2002, 13:57:33 »
Цитировать
Подумайте пока над этим

Мона и так.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
трудный вопрос
« Ответ #9 : 20 Августа 2002, 23:40:27 »
А тип запроса ты проверяешь - HEAD или GET ?

(на всякий случай так :)
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн andtar

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ofp.dem.ru
трудный вопрос
« Ответ #10 : 21 Августа 2002, 07:09:46 »
Пока я ждал ответа, сам уже придумал все:

if ($action == "top") { # популярные миссии
  
$handle opendir ("data/load");
  while ((
$file=readdir($handle))!==FALSE) {
    if ((
$file=="..") or ($file==".")) continue;
    
$id_1 explode ("."$file);
    
$id $id_1[0];
    
$file_full "data/load/{$file}";
    
$array_file file ($file_full);
    
$count count ($array_file);
    
$array[] = $count." ~ ".$id;
  }
  
closedir ($handle);
  
rsort ($array);
  
reset ($array);
  
$stop "0";
  while (list (
$key$val) = each ($array)) {
    if (
$stop == $top_mission) break;
    
$sort_ar explode (" ~ "$array[$key]);
    
$sort $sort_ar[1];
    
$array_mis file ($file_m);    # чтение файла миссии
    
$d explode ("^^"$array_mis[$sort-1]);
    
$href "mission.php?action=ot&id={$d[0]}";
    echo 
"<a href=$href>$d[3]</a>
"
;
    echo 
"Версия: $d[5]
"
;
    echo 
"Требует дополнения: $d[6]
"
;
    echo 
"Размер файла: $d[2] Кб
"
;
    echo 
"Автор: <a href=mailto:$d[9]>$d[8]</a>

"
;
    
$stop++;
  }
}


А почему у меня пишется, что 2 закачки, вместо одной:

if ($action == "download") { # Если файл скачан
  
if (!$id) { die ("<h1>ID файла не определен</h1>");}
  
$file_load "data/load/{$id}.txt";
  @
$f fopen ($file_load"a");
  
$data $date."~".$ip."\\n";
  @
fputs ($f$data);
  @
fclose ($f);
  
$href_location $server."mis/".$id.".zip";
  
header ("Location: $href_location");
}
the cold war is not over...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28