使用PHP / MySQL创建动态链接

时间:2011-06-18 21:24:35

标签: php mysql hyperlink anchor

我正在创建我的第一个PHP / MySQL网站,我很难弄清楚如何生成动态链接并为这些链接创建新页面。

我的索引页面正在从我的数据库中提取某些详细信息作为预览,当访问者点击该项目时,我希望它们被带到一个页面,该页面显示该行的数据库的完整信息。

我的索引页面上用于显示预览的代码如下,任何有关修改它以生成链接和页面的帮助都将非常感谢。

<?php
$query="SELECT * FROM $tbl_name ORDER BY job_id DESC";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$f1=mysql_result($result,$i,"company_name");
$f2=mysql_result($result,$i,"job_title");
$f3=mysql_result($result,$i,"city");
$f4=mysql_result($result,$i,"country");
$job_id=mysql_result($result,$i,"job_id");
?>

<div class = "hjl">
<ul>
<li id = "jobtitle"><?php echo $f2; ?></li><br />
<li id = "compname"><?php echo $f1; ?></li>
</ul>

<ul>
<li id = "city"><?php echo $f3; ?>, <?php echo $f4; ?></li><br />
</ul>

</div>

<?php
$i++;
}
?>

我很确定我所要求的是非常简单,我只是无法理解它。

3 个答案:

答案 0 :(得分:1)

在使用mysql_result之后

将mysql_close 放入,但是一旦你开始工作,你可能会考虑像PDO这样更现代的方法。

答案 1 :(得分:1)

感谢您的回答,但我已设法在我的索引页面上修复它(或解决它):

<?php

$query="SELECT * FROM $tbl_name ORDER BY job_id DESC";
$result=mysql_query($query) or die(mysql_error());
$rsjobinfo=mysql_fetch_assoc($result);

mysql_close();

do {?>
<div class = "hjl"><a href="paging.php?job_id=<?php echo $rsjobinfo['job_id'];?>">
<ul>
<li id = "jobtitle"><?php echo $rsjobinfo['job_title'];?></li><br />
<li id = "compname"><?php echo $rsjobinfo['company_name'];?></li>
</ul>
<ul>
<li id = "city"><?php echo $rsjobinfo['city'];?>, 
    <?php echo    $rsjobinfo['country'];?></li>
</ul>
</a>
</div>
<?php } while ($rsjobinfo=mysql_fetch_assoc($result))?>

</div>

在我的内容页面上跟着这个:

<?php
$job_id = $_GET['job_id'];

$query="SELECT * FROM $tbl_name WHERE job_id = $job_id";
$result=mysql_query($query) or die(mysql_error());
$rsjobinfo=mysql_fetch_assoc($result);

mysql_close();

?>

感谢大家的帮助。

答案 2 :(得分:0)

到你的代码添加链接(我认为你已经在某处):

//...................
<li id = "jobtitle">
   <a href="<?php echo '?id='.$job_id; ?>">
       <?php echo $f2; ?>
   </a>
</li>
//...................
<a href="<?php echo '?id='.$job_id; ?>">Read more...</a>
//...................

那么你的代码必须检查变量$ _GET ['id'],所以把IF放在代码的开头:

$where = '';

if( isset($_GET['id']) && strlen($_GET['id']) > 0 ) {
    $where = ' job_id = "'. mysql_real_escape_string( $_GET['id'] ) .'"' ;
}

<?php
$query="SELECT * FROM $tbl_name $where ORDER BY job_id DESC";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$f1=mysql_result($result,$i,"company_name");
$f2=mysql_result($result,$i,"job_title");
$f3=mysql_result($result,$i,"city");
$f4=mysql_result($result,$i,"country");
$job_id=mysql_result($result,$i,"job_id");
?>

<div class = "hjl">
  <ul>
    <li id = "jobtitle">
        <a href="<?php echo '?id='.$job_id; ?>">
              <?php echo $f2; ?>
        </a>
    </li><br />
    <li id = "compname"><?php echo $f1; ?></li>
  </ul>

<ul>
   <li id = "city"><?php echo $f3; ?>, <?php echo $f4; ?></li><br />
</ul>

<a href="<?php echo '?id='.$job_id; ?>">Read more...</a>

</div>

<?php
$i++;
}
?>

修改:尝试更改以下行:

$where = " job_id = '". mysql_real_escape_string( $_GET['id'] ) ."'" ;