2015-12-20 92 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> 
相關問題