我有这段代码
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”语句,现在出了点问题。它添加了一个红色单元格,但也留下了绿色单元格的记录并移动整行
答案 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)
试试这个。它仅使用$wynik3
在LIMIT 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))
第二次使用它会产生一个真正重命名的问题。 我不知道它是否会解决你的问题,但它绝对是第一次纠正