2015-12-20 48 views
0

我在数据库中有两个表,sight_countrysightseeing。我将sight_country表中的国家/地区字段的ID插入表sightseeings_country字段。在php中,我在CSS下拉菜单栏中显示来自sight_country的国家/地区字段值。如何在php中显示两个表中的数据

代码

<li class="menu-item-has-children"><a href="#">Sightseeing</a> 
     <ul class="sub-menu"> 
      <?php 

       $qry_st = "select * from `sight_country` limit 5"; 
       $rec_st = mysql_query($qry_st); 
       if(mysql_num_rows($rec_st) > 0) 
        { 
        while($res_st = mysql_fetch_array($rec_st)) 
        { 
        echo "<li><a href='sightseeing.php?id=$res_st[id]'>".$res_st['country']."</a></li>"; 
        } 
        } 
        ?> 
      </ul> 
     </li> 

当点击县城值,那么我表示从PHP页面表观光游览的所有数据的链接。

代码

$sql = "select * from `sightseeing` where `s_country` ='$id'"; 
$res = mysql_query($sql); 
$rec = mysql_fetch_array($res); 

该国可能有两个或多个相关观光数据,所以我从观光表在我的PHP页面侧边栏菜单显示观光冠军。

代码

<ul class="st_lnks"> 
      <?php 

       $qry_st = "select * from `sightseeing` where s_country = '$id'"; 

       $rec_st = mysql_query($qry_st); 
       if(mysql_num_rows($rec_st) > 0) 
        { 
        while($res_st = mysql_fetch_array($rec_st)) 
        { 
        echo "<li><a href='sightseeing.php?id=$res_st[s_country]'>".$res_st['stitle']."</a></li>"; 
        } 
        } 
        ?> 
     </ul> 

当我点击stitle我想表明它是在同一个页面相关的观光数据的链接。如何做到这一点?

+0

'相关观光数据'这是什么? –

+0

什么是错误? –

回答

0

我假设;

  • 整个脚本在一个页面上(sightseeing.php),根据任何GET变量(URL中的变量)而变化。
  • 原本页面只显示第一个菜单。然后,当你点击一个国家,你会再次被送到sightseeing.php。现在还有?id = *,其中还显示第二个列表,其中包含与所选国家相关的观光名单。
  • 您的观光表中有一个名为'id'的字段,具有独特的观光ID。

现在另外显示选择的观光细节(由用户点击); 修改第二个列表中的链接。而不是:

echo "<li><a href='sightseeing.php?id=$res_st[s_country]'>".$res_st['stitle']."</a></li>"; 

写:

echo "<li><a href='sightseeing.php?id=$res_st[s_country]&ss_id=$res_st[id]'>".$res_st['stitle']."</a></li>"; 

现在,当u点击其中一个链接,并发送回给sightseeing.php你也会有另一种获得可变GET [ 'ss_id'](其中有您想查看的观光标识)。 你可以使用这个变量来获取观光的相关细节。

$sightSeeingId = $_GET['ss_id']; 
$sql3 = "select * from `sightseeing` where `id` ='$sightSeeingId' LIMIT 1"; 
$res3 = mysql_query($sql3); 
$sightSeeingData = mysql_fetch_array($res3); 

检查它的数据,并打印出来

if(!$res3) die(mysql_error());    
if(mysql_num_rows($res3) > 0){ 
echo "Sight Seeing id:" . $sightSeeingData['id']; 
} 

作为一个侧面说明,你应该知道,mysql_ *功能已经过时,你的代码是vunerable SQL注入,在这里看到的;

GET parameters vulnerable to SQL Injection - PHP

+0

非常感谢。它的工作很好。 –

0

你可以给你的第二个链接第二个参数。给第一个参数的唯一名称

<ul class="sub-menu"> 
<?php 
$qry_st = "select * from `sight_country` limit 5"; 
$rec_st = mysql_query($qry_st); 
if (mysql_num_rows($rec_st) > 0) { 
    while ($res_st = mysql_fetch_array($rec_st)) { 
     echo "<li><a href='sightseeing.php?idCountry=$res_st[id]'>".$res_st['country']."</a></li>"; 
    } 
} 
?> 
</ul> 

然后产生第二个链接时添加第二个参数:

<ul class="st_lnks"> 
<?php 
$qry_st = "select * from `sightseeing` where s_country = '$id'"; 
$rec_st = mysql_query($qry_st); 
if (mysql_num_rows($rec_st) > 0) { 
    while($res_st = mysql_fetch_array($rec_st)) { 
     echo "<li><a href='sightseeing.php?idCountry=$idCountry&idSightseeing=res_st['id']'>".$res_st['stitle']."</a></li>"; 
    } 
} 
?> 
</ul> 
相关问题