Home  >  Article  >  Backend Development  >  一段逻辑判断,实现不了目的

一段逻辑判断,实现不了目的

WBOY
WBOYOriginal
2016-06-13 13:21:01985browse

一段逻辑判断,实现不了目的,求助
想只用一个页面,显示新闻系统的三种功能:"index.php?news_title=xxx?news_class=xxx",需要达到以下目的:

1,当news_title和news_class元素均为空或者都有值时,该页面显示全部新闻的标题列表;

2,当news_title和news_class两个元素中,一个有值另一个无值时,该页面显示元素有值的内容。

------算法逻辑和代码实现:

PHP code
<!--

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列表。

敢问各位大虾,我这逻辑错了,还是写法有问题?


------解决方案--------------------
你这样写不太好呢。

你请求数据与逻辑与表现的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 code
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> //两个都有 <div class="clear">
                 
              
              
        
            </div>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn