如果使用数据库查询则加倍

时间:2015-03-27 09:21:23

标签: 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;

                $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>";
}

如何正确使用“if ... else”语句,现在出了点问题。它添加了一个红色单元格,但也留下了绿色单元格的记录并移动整行

4 个答案:

答案 0 :(得分:0)

试试这个

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>";
}

答案 1 :(得分:0)

试试这个,

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>';
}

答案 2 :(得分:0)

试试这个。它仅使用$wynik3LIMIT 1查询中查询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"]之外回显<td>,这不是有效的HTML。我假设它只是用于调试,而不是生产表的一部分。

答案 3 :(得分:0)

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

下面

  

foreach($ row as $ key =&gt; $ value)

在这里

  

while($ row = mysql_fetch_array($ wynik3))

第二次使用它会产生一个真正重命名的问题。 我不知道它是否会解决你的问题,但它绝对是第一次纠正