2015-12-20 4 views
0

У меня есть две таблицы в базе данных, sight_country и sightseeing. Я вставляю идентификатор поля страны из таблицы sight_country в поле s_country таблицы sightseeing. В php я показываю значения полей страны от sight_country в раскрывающемся меню CSS.как отображать данные из двух таблиц в 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

'связанные экскурсионный data' что это? –

+0

Какая ошибка? –

ответ

0

Я предполагаю, что;

  • Весь сценарий находится на одной странице (sightseeing.php), который варьируется в зависимости от любых переменных GET (переменных в URL-адресе).
  • Первоначально на странице отображается только первое меню. Затем, когда вы нажмете страну, вас снова отправят в sightseeing.php. Теперь также с? 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>"; 

Теперь, когда и нажмите на одну из ссылок и отправляются обратно в 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_ * функции устарели и ваш код для восприимчивы 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> 
Смежные вопросы