Прошу помощи в создании "паспортов" для файлов

  • Автор темы Автор темы FocusR
  • Дата начала Дата начала

FocusR

Новичок
Прошу помощи в создании "паспортов" для файлов

Суть следующая. Есть база MySQL. Из нее загружаю списки файлов разбитые по категориям, алфавиту, постранично (по 30 штук) и т.д. Вот пример строки таблицы:

PHP:
print "<tr><td><p><a href=".$row["path"]." target=_top>Скачать ".$row["description"]." ".$row["version"]."</a></p></td>
<td><p><b>".$row["name"]."</b></p></td>
<td><p><b>".$data."</b></p></td>
<td><p><b>".$row["size"]." Mb</b></p></td></tr>
и т.д. - целая таблица.

path - путь к файлу.

Откровенно говоря, хочу увеличить хитов. Т.е. при нажатии по любому файлу, у посетителя не открывается окно закрузки файла, а он переходит на новую страницу, на которой расположена уже ссылка на скачивание файла + описания и т.п. Все данные загружаются из базы.

Файлов очень много и для каждого создавать страницы вручную проблематично. Я не представляю как можно создать ок. 20000 страниц вручную. :confused:

Т.е. подскажите пожалуйста как создать такие динамические страницы для каждого файла.
 
Делаешь примерно также как сделал список файлов. То есть делаешь вместо
ссылку на скрипт (вместе с идентификатором файла), который будет выводить страницу
на которой расположена уже ссылка на скачивание файла + описания и т.п.
 
kseen
Меня как раз это и интересует. Как должен выглядить данный скрипт?

У каждого файла есть ID (колонка id_file).
 
вместо
делаешь <a href="script.php?id=".$row["id_file"]."">Скачать файл!</a>
В скрипте script.php делаешь выборку по id_file запросом вида SELECT * FROM files WHERE id_file = '.$_GET['id_file'].' и выводишь текст по этому файлу (описание и т.д.) и ссылку на его скачивание
 
kseen
Спасибо. немного не так. Но я доработал скрипт. Как у тебя - id_file путаются между собой. И _Get получает пустое значение.
Вот как я сделал:
PHP:
$id = $row["id_file"];
<a href=script.php?id=".$id.">Скачать

в script.php
SELECT * FROM table where id_file = ".$_GET['id']."
Так, работает.

Кстати, а подскажи пожалуйста как мне например значение столбца file_name, которые выводятся в описании файла, занести автоматически в мета тэг keywords? Как в файл script.php я себе примерно представляю _Get(ом).
А как вставить все file_name в keywords на странице, где расположен список ссылок на страницы
<a href=script.php?id=".$id.">".$row["file_name"]."</a>

По форуму искал, но по keywords ничего дельного нет.
 
FocusR
А что тут может быть сложного ? Делаешь выборку file_name'ов,а потом в цикле делаешь в начале скрипта принты
Что-то типа такого
PHP:
$sql_query = 'SELECT file_name FROM files';
$sql_res = MySQL_Query($sql_query);
print '<META name="keywords" content="';
while($file = MySQL_Fetch_Array($sql_res)){
print $sql_res['filename'].',';
}
print '">';
Только перед MySQL_Query не забудь подключиться к базе

Ты это имел ввиду?
 
kseen
Все правильно, но мне нужно вывести в keywords не все 20000 записей. :) А по твоему запросу, выведутся все записи.

Мне нужно только те которые выводятся по выборке на странице.
PHP:
SELECT * FROM files where filename LIKE 'a%' ORDER BY filename ASC LIMIT $start,$per_page"
Т.е. я вывожу на страницу записи по алфавиту и по 30 штук на страницу. Мне в keywords нужны только именно эти 30 записей.

Конечно я могу 2 раза на странице выполнить один и тотже запрос. Сначала, чтобы вывести keywords, а затем и сам список. Но сам понимаешь - это будет тормозить страницу.

Есть какие-нибудь другие варианты?
 
Можно не делать запрос два раза.
Делаем запрос один раз
Выводим кейворды
Выводим сам список файлов
 
kseen
Сделал так. Вместо keywords выводится следующая ошибка:
PHP:
<meta name="keywords" content="<!--error--><br />
<b>Warning</b>:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>a.php</b> on line <b>19</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script>">

Строка 19 - это
while($file = MySQL_Fetch_Array($sql_res)){

В чем может быть причина?
 
PHP:
$sql_query = 'SELECT id_file, description, file_name FROM files'; 
$sql_res = MySQL_Query($sql_query);
 
Автор оригинала: FocusR
PHP:
$sql_query = 'SELECT id_file, description, file_name FROM files'; 
$sql_res = MySQL_Query($sql_query);
Не забыл ли подключиться к БД ? Смотри структуру таблицы files и смотри правильно ли ты делаешь запрос
 
kseen
Подключился. Запрос вроде бы верный. Т.к. если тотже запрос использовать в <body> (только для вывода списка). То все Ok! Не знаю в чем проблема...
 
Сверху