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]将被删除