Вобщем, суть такова: в базе находятся данные в blob ячейках (документы, перед этим переконвертированные в html формат). Вот нужно их открыть, перейдя по ссылке. У меня получилось их запихнуть в таблицу, но так выходит громоздко и очень неудобно.
Подскажите, пожалуйста, как это можно реализовать.
<?php
session_start();
echo '
<head>
<title>Документы</title>
</head>
<div>
<div>
<h2 align = center>Документы</h2>
<br>
<table>
<tr>
<td>';
mysql_query('SET NAMES "latin1"');
$result = mysql_query("SELECT `vid_doc`.`vid_doc` AS `vid_doc`
, `documents`.`name_doc` AS `name_doc`
, `documents`.`html_doc` AS `html_doc`
FROM
(`documents`
JOIN `vid_doc`
ON ((`documents`.`id_vid` = `vid_doc`.`id_vid`)))
where html_bool = '1'
");
echo "<table border='1'>
<tr>
<th>Имя</th>
<th>Вид</th>
<th>Документ</th>
</tr>";
$id=1;
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['name_doc'] . "</td>";
echo "<td>" . $row['vid_doc'] . "</td>";
echo "<td>" . $row['html_doc'] ."</td>";
}
echo "</table>";
echo '
</body>
</html>
'
?>
html_doc - это сама блоб-ячейка в таблице. Хочу, чтобы вместо документа стояла обычная ссылка на него. Буду очень признателен за любую помощь.
Спустя 27 минут, 1 секунда (6.02.2012 - 19:17) sergeiss написал(а):
Цитата (Taho @ 6.02.2012 - 19:50) |
Хочу, чтобы вместо документа стояла обычная ссылка на него. |
Не совсем понятно, что ты имел ввиду. Ты хочешь, чтобы была обычная ссылка <a href="..." ></a>, по которой можно было бы загрузить этот файл или что-то другое?
Спустя 2 часа, 36 секунд (6.02.2012 - 21:17) Taho написал(а):
Цитата (sergeiss @ 6.02.2012 - 16:17) | ||
Не совсем понятно, что ты имел ввиду. Ты хочешь, чтобы была обычная ссылка <a href="..." ></a>, по которой можно было бы загрузить этот файл или что-то другое? |
Да, вы поняли правильно, обычная ссылка. Но только не загрузить, а просто открыть в отдельном окне.
Спустя 6 минут, 50 секунд (6.02.2012 - 21:24) sergeiss написал(а):
Цитата (Taho @ 6.02.2012 - 22:17) |
Да, вы поняли правильно, обычная ссылка. Но только не загрузить, а просто открыть в отдельном окне. |
Ничего сложного

Просто надо сформировать ссылку, указав для неё:
1. Имя скрипта, который будет выводить этот код (его надо сделать еще, этот скрипт).
2. В ссылке указать некий уникальный идентификатор документа.
3. Указать target="_blank", чтобы открылось в отдельном окне.
В "основном" скрипте не надо будет выводить содержимое файла, его даже не надо запрашивать! Только те данные запрашивай, которые необходимы для создания списка ссылок.
А в скрипте (из п.1) надо будет сделать запрос к той же БД, но запросить уже полное содержимое одной записи. И вывести это содержимое в то новое окно, что откроется.
При этом в целом структура твоего скрипта сохранится - это я про тот скрипт, код которого ты указал в начале.
Спустя 7 минут, 34 секунды (6.02.2012 - 21:32) Taho написал(а):
Цитата (sergeiss @ 6.02.2012 - 18:24) |
Ничего сложного ![]() Просто надо сформировать ссылку, указав для неё: 1. Имя скрипта, который будет выводить этот код (его надо сделать еще, этот скрипт). 2. В ссылке указать некий уникальный идентификатор документа. 3. Указать target="_blank", чтобы открылось в отдельном окне. В "основном" скрипте не надо будет выводить содержимое файла, его даже не надо запрашивать! Только те данные запрашивай, которые необходимы для создания списка ссылок. А в скрипте (из п.1) надо будет сделать запрос к той же БД, но запросить уже полное содержимое одной записи. И вывести это содержимое в то новое окно, что откроется. При этом в целом структура твоего скрипта сохранится - это я про тот скрипт, код которого ты указал в начале. |
Спасибо, смысл уловил =) Впринципе так и думал, но хотел всё же убедиться )
Спустя 1 час, 58 минут, 51 секунда (6.02.2012 - 23:30) Taho написал(а):
Снова я. В общем сделал я скриптик отдельный, вот такой.
кажет хорошо, и также переделал старый скрипт
ссылки формируются нормальные, от есть например вот такие
http://localhost/smsdocs/index.php?page=take_mht.php?id=44
но ссылки не работают. Если же я в первый скрипт впишу в код, например $id = 44; и зайду через прямую ссылку
http://localhost/smsdocs/index.php?page=take_mht.php , то документ с номером 44 отображается отлично. В чём может быть проблема?
<?php
session_start();
if($id){
$sql = "SELECT html_doc FROM documents WHERE id_doc=$id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$doc = $row["html_doc"];
mysql_free_result($result);
header("ontent-type: html/text");
echo $doc;
}
?>
кажет хорошо, и также переделал старый скрипт
<?php
session_start();
echo '
<head>
<title>Документы</title>
</head>
<div>
<div>
<h2 align = center>Документы</h2>
<br>
<table>
<tr>
<a href="index.php?page=take_mht">проверка</a>
<td>';
mysql_query('SET NAMES "latin1"');
$result = mysql_query("SELECT `documents`.`id_doc` AS `id_doc`
, `vid_doc`.`vid_doc` AS `vid_doc`
, `documents`.`name_doc` AS `name_doc`
, `documents`.`html_doc` AS `html_doc`
FROM
(`documents`
JOIN `vid_doc`
ON ((`documents`.`id_vid` = `vid_doc`.`id_vid`)))
where html_bool = '1'
");
echo "<table border='1'>
<tr><th>ID</th>
<th>Вид</th>
<th>Документ</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id_doc'] . "</td>";
echo "<td>" . $row['vid_doc'] . "</td>";
$id = $row['id_doc'];
echo "<td><a href='index.php?page=take_mht.php?id=".$id."'>" . $row['name_doc'] . "</a></td>";
}
echo "</table>";
echo '
</body>
</html>
'
?>
ссылки формируются нормальные, от есть например вот такие
http://localhost/smsdocs/index.php?page=take_mht.php?id=44
но ссылки не работают. Если же я в первый скрипт впишу в код, например $id = 44; и зайду через прямую ссылку
http://localhost/smsdocs/index.php?page=take_mht.php , то документ с номером 44 отображается отлично. В чём может быть проблема?
Спустя 8 часов, 27 минут, 21 секунда (7.02.2012 - 07:58) sergeiss написал(а):
В ссылке знак вопроса пишется один раз, в самом начале списка параметров. А параметры уже разделяются амперсендом. Посмотри, например, ссылки на этом форуме
Вот прямо сейчас глянь в адресную строку этой темы, с которой ты работаешь
Там ты увидишь что-то типа http://phpforum.ru/index.php?showtopic=57199&hl=


Спустя 2 часа, 49 минут, 36 секунд (7.02.2012 - 10:47) Taho написал(а):
Цитата (sergeiss @ 7.02.2012 - 04:58) |
В ссылке знак вопроса пишется один раз, в самом начале списка параметров. А параметры уже разделяются амперсендом. Посмотри, например, ссылки на этом форуме ![]() ![]() |
Блин, все равно догнать не могу.
Получается, такая должна быть? Всё равно не батракает.
http://index.php?page=take_mht&id=45
Может что забыл указать в мелком скрипте с запросом?
Спустя 41 минута, 11 секунд (7.02.2012 - 11:29) sergeiss написал(а):
Следующий вопрос: что значит
Цитата (Taho @ 7.02.2012 - 11:47) |
Всё равно не батракает. |
Как именно ты выбираешь в скрипте переданные ему параметры? Покажи код.
Спустя 2 часа, 38 минут, 10 секунд (7.02.2012 - 14:07) Taho написал(а):
так же, как и в прошлом посте, просто переделал строку в таблице.
Вот что получилось:
docs.php
этот не переделывал
take_mht.php
Еще есть файл с функциями логина, логаута и сверки паролей, но думаю здесь они не причём. Складывается ощущение, что я что-=то намудрил и изза этого правильная ссылка с параметрами не работает =)
echo "<td><a href='index.php?page=take_mht&id=".$id."'>" . $row['name_doc'] . "</a></td>";
Вот что получилось:
docs.php
<?php
session_start();
echo '
<head>
<title>Документы</title>
</head>
<div>
<div>
<h2>Документы</h2>
<br>
<table>
<tr>
<td>';
mysql_query('SET NAMES "latin1"');
$id = '';
$result = mysql_query("SELECT `documents`.`id_doc` AS `id_doc`
, `vid_doc`.`vid_doc` AS `vid_doc`
, `documents`.`name_doc` AS `name_doc`
, `documents`.`html_doc` AS `html_doc`
FROM
(`documents`
JOIN `vid_doc`
ON ((`documents`.`id_vid` = `vid_doc`.`id_vid`)))
where html_bool = '1'
");
echo "<table border='1'>
<tr><th>ID</th>
<th>Вид</th>
<th>Документ</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id_doc'] . "</td>";
echo "<td>" . $row['vid_doc'] . "</td>";
$id = $row['id_doc'];
echo "<td><a href='index.php?page=take_mht&id=".$id."'>" . $row['name_doc'] . "</a></td>";
}
echo "</table>";
echo '
</body>
</html>
'
?>
этот не переделывал
take_mht.php
<?php
session_start();
if(&$id){
$sql = "SELECT html_doc FROM documents WHERE id_doc=$id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$doc = $row["html_doc"];
mysql_free_result($result);
header("ontent-type: html/text");
echo $doc;
}
?>
Эти два файла лежат у меня в папке tpl (типа доступные страницы после авторизации)
а вот сам index.php
[php]
<?php
session_start();
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('diplom') or die(mysql_error());
mysql_query('SET NAMES "latin1"');
include('uni-auth.php');
if(USER_LOGGED) {
if(!check_user($UserID)) logout();
?>
<h1>Здравствуйте, <?php echo $name; ?>!</h1>
<h2>Ваш ID: <?php echo $UserID; ?>.</h2>
<a href="index.php">главная</a>
<a href="index.php?page=docs">документы</a><br/>
<h4><a href="?logout">Выход</a></h4>
<?php
if($_GET['page'] !='') {
@include("tpl/".$_GET['page'].".php");
}
else { @include("tpl/home.php");}
}
else { ?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table>
<tr>
<td>Имя:</td><td><input type="text" name="user"></td>
</tr>
<tr>
<td>Пароль:</td><td><input type="password" name="pass"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="login" value="Войти"></td>
</tr>
</table>
</form>
<?php
}
?>
Еще есть файл с функциями логина, логаута и сверки паролей, но думаю здесь они не причём. Складывается ощущение, что я что-=то намудрил и изза этого правильная ссылка с параметрами не работает =)
Спустя 31 минута, 40 секунд (7.02.2012 - 14:38) sergeiss написал(а):
Ну вот смотри внимательно...
Вот твой УРЛ: index.php?page=take_mht&id=33
Параметр page ты выбираешь вот так: $_GET['page']. Но ГДЕ ты выбираешь в скрипте параметр id? Правильно, нигде. Так и как тогда твой скрипт будет его учитывать?
Вот твой УРЛ: index.php?page=take_mht&id=33
Параметр page ты выбираешь вот так: $_GET['page']. Но ГДЕ ты выбираешь в скрипте параметр id? Правильно, нигде. Так и как тогда твой скрипт будет его учитывать?
Спустя 56 минут, 40 секунд (7.02.2012 - 15:35) Taho написал(а):
Спасибо огромное, добавил $id = $_GET["id"]; в take_mht.php
Все заработало =)
Все заработало =)