0

私はウェブサイトを開発していますが、これが私のコードです。コードには2つのID sId(セクション)とssId(SubSectionId)があり、ページがあります。index.php今、私はこのようなURLを作成しています-左側のナビゲーションバーをクリックするとリンクがあり、1 つのリンクをクリックすると、次のような ID が送信されますlocalhost/index.php?sId=29&ssId=0

ここで、ID を送信するサブセクションの同じ leftnav をテーピングして、ID を使用ssId=181して同じページにデータを表示したいと考えています。index.phplocalhost/index.php?sId=29&ssId=181

ここでの問題は、結果がsId=29代わりにcontentarea に表示ssId=181され、両方がデータベースに保存されていることです。

if(isset($_GET['sId']) && !empty($_GET['sId']))
{
?>
   <div>
    <br /><br />
        <h2 class="heading">
        <?php 
           $sId = intval($_GET['sId']);
           $qry = "SELECT `SectionId`,`Title`,`Details` FROM `section` WHERE `SectionId` = $sId";
           $records = mysql_query($qry);
           while($record= mysql_fetch_array($records))
           {
              echo $record['Title'];    
          ?>
        </h2>
        <br />
        <p>
        <?php
              echo $record['Details'];
           }
        ?>  
        </p>
    </div>
</div>
<?php
}
elseif(isset($_GET['sId']) && !empty($_GET['sId']) && isset($_GET['ssId']) && !empty($_GET['ssId']))
{
?>      
 <div>
 <br /><br />
 <h2 class="heading">
 <?php 
     $sId = intval($_GET['sId']);
     $ssId = intval($_GET['ssId']); 
     $qry = "SELECT SubSectionId,Title,Details FROM `pages` WHERE `SubSectionId` = $ssId";
     $records = mysql_query($qry);
     while($record= mysql_fetch_array($records))
     {
        echo $record['Title'];
     ?> 
        </h2>
        <br />
        <p>
     <?php 
        echo $record['Details'];
     }
     ?>
        </p>
    </div>
</div>      
<?php   
  }
}

皆さんが理解してくれることを願っています。前もって感謝します。

4

1 に答える 1

2

私の理解が正しければ、あなたは次のように言っています。

  1. スクリプトは、入力として sid および/または ssid を想定しています。
  2. いずれかが指定されている場合、スクリプトは関連するコンテンツを DB からロードして表示します。
  3. ただし、現在、スクリプトはssidのコンテンツを表示せず、sidのコンテンツのみを表示します

私は正しいですか?

IF/ELSE ではなく、2 つの IF ブロックを使用してみてください。これにより、1 つだけではなく、満たされたすべての条件が実行されるようになります。

また、empty関数呼び出しだけを使用することに固執することもできます。

if ( !empty($_GET['sId']) ) {
   //load and show content for section
}

if ( !empty($_GET['ssId']) ) {
   //load and show content for sub section
}

更新- サブセクションをセクションよりも優先するには、IF/ELSE 条件を逆にする必要があります。

if ( !empty($_GET['sId']) && !empty($_GET['ssId']) ) {
   //load and show content for sub section if availavle

} else if ( !empty($_GET['sId']) ) {

   //load and show content for section
}
于 2013-08-22T07:07:25.833 に答える