2011-06-18 46 views
0

我正在创建我的第一个PHP/MySQL网站,我很难弄清楚如何生成动态链接并为这些链接创建新页面。使用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++; 
} 
?> 

我非常确定我在问什么很简单,我只是无法让我的头在接近它。

+0

,看看这里:http://php.net/manual/en/function.mysql-query.php而且还检查了PDO,这通常是一个如果你的PHP支持它,更好的方法。 – ldg

+0

@ldg谢谢,我没有问题通过索引页面获取信息,但我在哪里查询错误?我应该只是在我想要在该网页上显示的字段而不是整个表格中拉动? – Dan

回答

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(); 

?> 

感谢您的帮助大家。

你不使用的mysql_query正确
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 [“身份证”],所以就把如果您的代码的开头:

$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']) ."'" ; 
+0

感谢您的回复,我补充说,它给了我这个错误: 警告:mysql_numrows()期望参数1是资源,布尔给予...在线21 – Dan

+0

好的,你也可以举例* * $ job_id **,是数字吗? – WooDzu

+0

嗨,job_id是我的表中每个条目的唯一标识符,是的它的数字,我只是认为这是识别每个独特条目的最佳方式,谢谢 – Dan

1

把mysql_close 放在之后,你使用mysql_result,但是一旦你得到它的工作,你可能会看到一个更现代的方法,如PDO。

+0

感谢帮助LDG,我会看看PDO,但我不想走路才能爬行:) Dan – Dan