Отображать поле в MySQL как ссылку в PHP?

#php #mysql #html #file-upload

#php #mysql #HTML #загрузка файла

Вопрос:

У меня настроен скрипт отправки, где люди могут отправлять свои данные и загружать вложение. Все это записывается в базу данных в вызываемой таблице Submissions со следующими полями: fname , lname , snumber и upload .

upload Поле в настоящее время является местоположением файла на сервере, например, в одной записи говорится uploads/123456.zip (uploads — это каталог, 123456.zip это имя файла).

У меня также есть серверная система администрирования, в которой отображаются все отправленные данные. Код, используемый для этого, следующий:

 <html>
<head>
<title>Internal Database Listing</title>
<style type="text/css">
/**** Start page styles ****/

body {
    background: #DFA01B;
    font-family: arial, sans-serif;
    font-size: 14px;
    }

#wrap {
    max-width: 900px;
    margin: 30px auto;
    background: #fff;
    border: 4px solid #FFD16F;
    -moz-border-radius: 15px;
    -webkit-border-radius: 15px;
    border-radius: 15px;
    padding: 20px;
        }
table.subs {
text-align: center;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif ;
font-weight: normal;
font-size: 11px;
color: #fff;
width: 800px;
background-color: #666;
border: 0px;
border-collapse: collapse;
border-spacing: 0px;
}

table.subs td 
{background-color: #CCC;
color: #000;
padding: 4px;
text-align: left;
border: 1px #fff solid;}

table.subs td.hed
{background-color: #666;
color: #fff;
padding: 4px;
text-align: left;
border-bottom: 2px #fff solid;
font-size: 12px;
font-weight: bold;}

</style>
</head>
<body>
<?php
$username="dbuser";
$password="dbuserpass";
$database="dbsub";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM Submissions";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();
?>
<div id="wrap">
    <div align="left">
        <img src="logo.png" width="208" height="87" />
    </div>
    <div align="center">    
        <h1 style="font-family:arial">Total submissions</h1>
    </div>
<div align="center">
<table class="subs" border="1" cellspacing="1" cellpadding="3">
<tr>
<th><font face="Arial, Helvetica, sans-serif">First name</font></th>
<th><font face="Arial, Helvetica, sans-serif">Last name</font></th>
<th><font face="Arial, Helvetica, sans-serif">Student #</font></th>
<th><font face="Arial, Helvetica, sans-serif">Grade</font></th>
<th><font face="Arial, Helvetica, sans-serif">Submission</font></th>
</tr>
</div>
</div>
<?php
$i=0;
while ($i < $num) {

$f1=mysql_result($result,$i,"fname");
$f2=mysql_result($result,$i,"lname");
$f3=mysql_result($result,$i,"snumber");
$f4=mysql_result($result,$i,"grade");
$f5=mysql_result($result,$i,"upload");
?>

<tr>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f4; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f5; ?></font></td>
</tr>

<?php
$i  ;
}
?>
</body>
</html>
  

Этот код работает отлично, за исключением поля загрузки, которое он отображает upload/123456.ppt . Как мне заставить его отображаться http://sitename.com/uploads/123456.ppt И сделать его гиперссылкой на этот файл?

Комментарии:

1. Не используйте FONT , оно устарело. Использовать SPAN .

Ответ №1:

Просто оберните вывод в <a> тег

<td><font face="Arial, Helvetica, sans-serif"><a href="http://sitename.com/<?php echo $f5; ?>"><?php echo $f5; ?></a></font></td>

Комментарии:

1. Похоже, у вас есть несколько дополнительных символов, исправленный код <td><font face="Arial, Helvetica, sans-serif"><a href="http://sitename.com/<?php echo $f5; ?>"><?php echo $f5; ?></a></font></td> . Несмотря на это, это было именно то, что мне было нужно. Спасибо!

2. Действительно, лишнее =" по какой-то причине. Удалено сейчас, спасибо. Всегда пожалуйста.

Ответ №2:

Далее будет напечатана ссылка, содержащая фиксированный URL.

 <?php 
$url = 'http://www.' . $_SERVER['SERVER_NAME'] . '/' . $f1;
echo '<a href="' . $url . '">Click here to download the file!</a>';
  

Если $_SERVER[‘ИМЯ_СЕРВЕРА’] неверно для вашего веб-сайта, вы можете просто заменить его правильным доменным именем.

Комментарии:

1. У Бена был код, который точно соответствовал сценарию, однако ваш ответ — это именно то, что я искал в другом месте! Спасибо.