2013-03-02 121 views
0

我遇到了一行代碼問題。我的老師甚至都沒有看到這個問題,而且我已經打了近一個半星期了。任何幫助將不勝感激。ELSE語句有趣

代碼:

{ 
    if (count($_POST['CINS']) > 0) 
    { 
    echo "<h2>Your CINS picks are:</h2>\n"; 
    echo "<ul>\n"; 
    foreach ($_POST['CINS'] as $element) 
    { 
     echo "\t<li>$element</li>\n"; 
    } // end of FOREACH statement 
    echo "</ul>\n"; 
    } // end of IF count CINS 

    if (count($_POST['CINT']) > 0) 
    { 
    echo "<h2>Your CINT picks are:</h2>\n"; 
    echo "<ul>\n"; 
    foreach ($_POST['CINT'] as $element2) 
    { 
     echo "\t<li>$element2</li>\n"; 
    } // End of FOREACH CINT 
    echo "</ul>\n"; 
    } // End of IF for CINT 
    else 
    { 
    echo "CINT = " . count($_POST['CINT']) . " CINS = " . count($_POST['CINS']) . "<br />\n"; 
    echo __LINE__; 
    if ((count($_POST['CINT'] == 0)) and (count($_POST['CINS'] == 0))) // This is where the problem lies. It's showing up the echo statements even when CINS has a count of 1. but if CINT has a count of 1, the echo statements do not show up. 
    { 
     echo "<h2>No classes</h2>\n"; 
     echo "<p>You need to pick a class from BOTH CINT and CINS to be a well rounded student.</p>\n"; 
     echo "CINT = " . count($_POST['CINT']) . " CINS = " . count($_POST['CINS']) . "<br />\n"; 
    } 
    } // END ELSE COUNT CINS 
} 
?> 
+0

代碼應該做什麼? – Ares 2013-03-02 04:56:00

+2

你是什麼意思? – Oliver 2013-03-02 04:58:10

+0

您輸入一個名稱,然後從CINT和CINS類中選擇複選框,然後顯示哪些CINS和/或CINT類。但如果兩者都不選擇,則它會在底部的else語句中顯示回顯,但如果選擇其中一個,則應該不顯示任何錯誤。 – Nick 2013-03-02 04:59:02

回答

3

放錯地方的括號

if ((count($_POST['CINT'] == 0)) and (count($_POST['CINS'] == 0))) -> wrong 

if ((count($_POST['CINT']) == 0) and (count($_POST['CINS']) == 0)) 
+0

非常感謝。 – Nick 2013-03-02 05:06:30

+0

艾@尼克謝謝你cibəgirmir。 Qu qu qoyda camaatəziyətçəkib。 – 2014-07-04 06:11:15

0

我想,你想這樣:

if (count($_POST['CINS']) > 0) 
{ 
    … 
} // End of IF for CINS 

if (count($_POST['CINT']) > 0) 
{ 
    … 
} // End of IF for CINT 

if (count($_POST['CINS']) == 0 || count($_POST['CINT']) == 0) 
{ 
    … 
} 
1

你並不需要所有這些括號:

if(
    count($_POST['CINT']) == 0 AND 
    count($_POST['CINS']) == 0 
    ) 

看一些縮進怎麼走一段很長的路要走:

{ 
    if (count($_POST['CINS']) > 0) { 
     echo "<h2>Your CINS picks are:</h2>\n"; 
     echo "<ul>\n"; 
     foreach ($_POST['CINS'] as $element) { 
      echo "\t<li>$element</li>\n"; 
     } 

     echo "</ul>\n"; 
    } 

    if (count($_POST['CINT']) > 0) { 
     echo "<h2>Your CINT picks are:</h2>\n"; 
     echo "<ul>\n"; 
     foreach ($_POST['CINT'] as $element2) { 
      echo "\t<li>$element2</li>\n"; 
     } 

     echo "</ul>\n"; 
    } 
else { 
    echo "CINT = " . count($_POST['CINT']) . " CINS = " . count($_POST['CINS']) . "<br />\n"; 
    echo __LINE__; 

    if(
     count($_POST['CINT']) == 0 AND 
     count($_POST['CINS']) == 0 
     ) { 
     echo "<h2>No classes</h2>\n"; 
     echo "<p>You need to pick a class from BOTH CINT and CINS to be a well rounded student.</p>\n"; 
     echo "CINT = " . count($_POST['CINT']) . " CINS = " . count($_POST['CINS']) . "<br />\n"; 
    } 
} 
+0

我做縮進。我稍後再做。否則對我來說它看起來不正確。 – Nick 2013-03-02 05:17:56

0

也許括號需要注意...

if ((count($_POST['CINT'] == 0)) and (count($_POST['CINS'] == 0))) 

可以更好地工作作爲

if ((count($_POST['CINT']) == 0) && (count($_POST['CINS']) == 0)) 

給它射擊 - 迴應的結果。

+1

它解決了這個問題。感謝所有的幫助。 – Nick 2013-03-02 05:18:38