ホームページ > バックエンド開発 > PHPチュートリアル > 論理的な判断だけでは目的は達成できない

論理的な判断だけでは目的は達成できない

WBOY
リリース: 2016-06-13 13:21:01
オリジナル
1039 人が閲覧しました

論理的な判断だけでは目的を達成できません。助けてください
ニュース システムの 3 つの機能を 1 つのページだけで表示したいのですが、「index.php?news_title=xxx?news_class=xxx」。目標を達成する必要があります:

1. news_title 要素と news_class 要素が両方とも空であるか、値がある場合、ページにはすべてのニュースのタイトル リストが表示されます。

2. news_title と news_class の場合、一方には値があり、もう一方には値がありません。要素に値があるコンテンツがページに表示されます。

------アルゴリズム ロジックとコードの実装:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
//首先,取得浏览器的传值:news_title和news_class
if(isset($_GET['news_class']))
{
  $news_class=$_GET['news_class'];
}
else
{
  $news_class='';
}
 
if(isset($_GET['news_title']))
{
  $news_title=$_GET['news_title'];
}
else
{
  $news_title='';
}

//然后开始判断,准备显示有关的内容

if ($news_title='')//当news_title元素为空时,开始判断news_class元素是否为空
{
   if ($news_class='')//news_class也为空,则该页面显示所有news表的news_title列表
    {
      $sql="SELECT news_title,in_time FROM news";
      $result = mysql_query($sql);
       while ($row=mysql_fetch_assoc($result))
             {
?>             
        <tr>
          <td>
        <?php echo $row['news_title']; ?>
        <?php echo $row['in_time']; ?>
      </td>
        </tr>
<?php
             }
mysql_free_result($result);
    }
    else//当news_class不为空,则该页面显示news_class的相关内容
    {
      $sql="SELECT * FROM news where news_class='$news_class'";
      $result = mysql_query($sql);
       while ($row=mysql_fetch_assoc($result))
             {
?>             
        <tr>
          <td><?php echo $row['news_title']; ?>
              <?php echo $row['in_time']; ?>
          </td>
        </tr>
<?php
             }
mysql_free_result($result);
    }
}
else  //当news_title不为空值时,开始判断news_class是否为空
{
   if ($news_class='')//news_class为空,则该页面show出news_title的相关数据
    {
      $sql="SELECT * FROM news where news_title='$news_title'";
      $result = mysql_query($sql);
       while ($row=mysql_fetch_assoc($result))
             {
?>             
        <tr>
          <td> <?php echo $row['news_title']; ?>
               Author : <?php echo $row['news_author']; ?> 
               Date : <?php echo $row['in_time']; ?> 
                      <?php echo $row['news_content']; ?>
      </td>
        </tr>
<?php
             }
mysql_free_result($result);      
    }
    else//当news_class也不为空值时,则该页面显示所有news表的数据(和两者都为空时一样)
    {
      $sql="SELECT news_title,in_time FROM news";
      $result = mysql_query($sql);
       while ($row=mysql_fetch_assoc($result))
             {
?>             
        <tr>
          <td><?php echo $row['news_title']; ?>
          <?php echo $row['in_time']; ?>
      </td>
        </tr>
<?php
             }
mysql_free_result($result);      
    }
}

ログイン後にコピー


上記のコードが最終的に表示されると、すべてのコードが表示されます。ニュースとして表示されるタイトルリストは new_title list です。

皆さんにお聞きしたいのですが、私の論理が間違っている、あるいは私の書き方に何か問題がありますか?


-----解決策---------
書けませんかこんな感じですか?

要求されたデータ、ロジック、パフォーマンスの HTML コードはすべてまとめられています。
最初に論理的に判断することが最善です。もう一度データをリクエストしてください。最後の foreach は html を出力します。

あなたのコードは非常に難しいので、最初から始めたほうが良いでしょう。 =_=zzz
------解決策---------
index.php?news_title=xxx?news_class= xxx
のパラメータ文字列は従来の形式ではありません
従来の形式は、index.php?news_title=xxx&news_class=xxx

得られるものは array( 'news_title' => 'xxx? news_class=xxx')
使用前に処理が必要です

------解決策---------
PHP コード
if ($a && $b) {
    // すべて表示
elseif ($a) {
    ;
elseif ($b) {
    ;
}
<br><font color="#e78608">------解決策---------</font><br>URL は、index.php?news_title= として記述する必要があります。 xxx&news_class =xxx<br><br>$news_title = $news_class = '';<br>if(isset($_GET['news_title'])) $news_title = $_GET['news_title'];<br>if( isset ($_GET['news_class'])) $news_class = $_GET['news_class'];<br><br>if($news_title != '' && $news_class != '') {<br> // 2 つすべて <div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート