Php 使用数据库查询进行双if

Php 使用数据库查询进行双if,php,html,mysql,Php,Html,Mysql,我有这个密码 while ($row = mysql_fetch_assoc($wynik)) { echo '<tr class="ad"> '; foreach ($row as $key => $value) { if ($value != null){ if ($value<=1){ $wymiar = $key."x".$first;

我有这个密码

while ($row = mysql_fetch_assoc($wynik)) {
    echo '<tr class="ad">  ';
    foreach ($row as $key => $value) {

        if ($value != null){

            if ($value<=1){
                $wymiar = $key."x".$first;

                $wynik3 = mysql_query("SELECT * FROM `".$nazwa2."` where `tak` = '".$wymiar."' ");
                while ($row = mysql_fetch_array($wynik3)) {

                    if ($row["tak"] == $wymiar){
                        echo $row["id"];
                        echo '<td width=25px; style="background-color: red; border-color: blue;" border="1"><p style="display:block;">'.$key.'x'.$first.'</p></td>';
                    }
                    unset($wymiar);
                }  

                echo '<td width=25px; style="background-color: green; border-color: blue;" border="1"><p style="display:block;">'.$key.'x'.$first.'</p></td>';
            } else {
                echo '<td width=25px; style="background-color: yellow; border-color: blue;" border="1">'.$value."</td>";
                $first = $value;
            }

        } else {
            echo '<td width=25px; style="background-color: magenta; border-color: blue;" border="1">'.$value."</td>";
        }

    } echo "</tr>";
}
如何正确使用如果。。。否则的话,现在就有问题了。它会添加一个红细胞,但也会留下一个绿色细胞的记录,并移动整行

while ($row = mysql_fetch_assoc($wynik)) {
    echo '<tr class="ad">  ';
    foreach ($row as $key => $value) {

        if (!empty($value)){

            if ($value<=1){
                $wymiar = $key."x".$first;

                $wynik3 = mysql_query("SELECT * FROM `".$nazwa2."` where `tak` = '".$wymiar."' ");
if(mysql_num_rows($wynik3)== 0){
echo '<td width=25px; style="background-color: green; border-color: blue;" border="1"><p style="display:block;">'.$key.'x'.$first.'</p></td>';
} else {
                while ($row = mysql_fetch_array($wynik3)) {

                    if ($row["tak"] == $wymiar){
                        echo $row["id"];
                        echo '<td width=25px; style="background-color: red; border-color: blue;" border="1"><p style="display:block;">'.$key.'x'.$first.'</p></td>';
                    }
                    unset($wymiar);
                }  

                }
            } else {
                echo '<td width=25px; style="background-color: yellow; border-color: blue;" border="1">'.$value."</td>";
                $first = $value;
            }

        } else {
            echo '<td width=25px; style="background-color: magenta; border-color: blue;" border="1">'.$value."</td>";
        }

    } echo "</tr>";
}
试试这个

while ($row = mysql_fetch_assoc($wynik)) 
{
    foreach ($row as $key => $value) 
    {
        $arrTableTD = array();        

        if ($value != null)
        {
            if ($value<=1)
            {
                $wymiar = $key."x".$first;

                $wynik3 = mysql_query("SELECT * FROM `".$nazwa2."` where `tak` = '".$wymiar."' ");
                while ($row = mysql_fetch_array($wynik3)) 
                {
                    if ($row["tak"] == $wymiar)
                    {
                        $arrTableTD[] =  $row["id"];
                        $arrTableTD[] =  '<td width=25px; style="background-color: red; border-color: blue;" border="1"><p style="display:block;">'.$key.'x'.$first.'</p></td>';
                    }
                    unset($wymiar);
                }  

                $arrTableTD[] =  '<td width=25px; style="background-color: green; border-color: blue;" border="1"><p style="display:block;">'.$key.'x'.$first.'</p></td>';
            } else {
                $arrTableTD[] =  '<td width=25px; style="background-color: yellow; border-color: blue;" border="1">'.$value."</td>";
                $first = $value;
            }

        } else {
            $arrTableTD[]=  '<td width=25px; style="background-color: magenta; border-color: blue;" border="1">'.$value."</td>";
        }

    } 

    echo $tablerow = '<tr class="ad">'.implode("",$arrTableTD).'</tr>';
}

试试这个。它只查询$wynik3查询中的一行,使用LIMIT 1。然后测试该查询是否成功;如果是,则显示红色单元格,否则显示绿色单元格

while ($row = mysql_fetch_assoc($wynik)) {
    echo '<tr class="ad">  ';
    foreach ($row as $key => $value) {

        if ($value != null){

            if ($value<=1){
                $wymiar = $key."x".$first;

                $wynik3 = mysql_query("SELECT * FROM `".$nazwa2."` where `tak` = '".$wymiar."' LIMIT 1");
                if ($row = mysql_fetch_array($wynik3)) {
                        echo $row["id"];
                        echo '<td width=25px; style="background-color: red; border-color: blue;" border="1"><p style="display:block;">'.$key.'x'.$first.'</p></td>';
                } else {

                    echo '<td width=25px; style="background-color: green; border-color: blue;" border="1"><p style="display:block;">'.$key.'x'.$first.'</p></td>';
                }
            } else {
                echo '<td width=25px; style="background-color: yellow; border-color: blue;" border="1">'.$value."</td>";
                $first = $value;
            }

        } else {
            echo '<td width=25px; style="background-color: magenta; border-color: blue;" border="1">'.$value."</td>";
        }

    } echo "</tr>";
}

顺便说一句,它在外部回显$row[id],这不是有效的HTML。我假设这只是为了调试,而不是生产表的一部分。

您可能会遇到问题,因为您在代码中使用了两次变量$row

这里

foreach$行作为$key=>$value

这里呢

而$row=mysql\u fetch\u数组$wynik3

第二次使用它会产生一个问题:重命名它。
我不知道它是否能解决您的问题,但这肯定是第一次更正,使

停止使用mysql_*函数。为什么需要if$row[tak]==$wymiar?$wynik3查询只返回正确的行。在这些结果的第一行之后,您取消设置$wymiar,因此剩余的行将永远不会匹配。为什么不返回一行限制为1?它显示绿色单元格,因为您无条件地回显它。您是否只想表明如果$wynik3查询没有找到任何内容?同样,正如正确指定的@D4V1D一样,停止使用mysql_*function它工作得非常出色。谢谢你的解释行[id]将被删除