-1

SQL クエリの列が 0 か 1 かに基づいて、テーブルの 2 つの列の印刷結果を変更しようとしています。

$Status のエコーを実行したところ、正しい値のリストが表示されましたが、テーブルの上にあります。テーブルの行に配置するために、これを間違って行っていますか?

残りのデータはテーブルに正しく入力されています。それはこれら 2 つの列だけです。現在、その部分をコメントアウトしているため、テーブルへの出力はそれぞれ 0 または 1 です。また、特定の列の横に、正しく出力される場合の変数のコメント アウトがあります。

どんな助けでも大歓迎です。

変換を行おうとしているコードの部分は次のとおりです。

if ($strAdjIncrease == '0') {
    $AdjIncDec == 'Decrease';
} elseif ($strAdjIncrease == '1') {
    $AdjIncDec == 'Increase';
} else {
    $AdjIncDec == 'Unknown';
}
if ($strAdjStatus == '0') {
     $Status =='Open';
} elseif ($strAdjStatus == '1') {
     $Status =='Closed';
} else {
     $Status =='Void';
}

ここに私の完全なテーブルコードがあります:

if (odbc_num_rows($rsIaL) == 0) {
      echo "<center>";
      echo "<b>We're Sorry, No Records Returned.</b><br>\n";
      echo "</center>";
  } else {
      echo "<p align='center'>";
      echo "<font face='Arial' size='4'><b>Last 31 Days Only</b></font>";
      echo "</p>\n";
      echo "<table border='1' align='center' cellpadding='2' style='border-collapse: collapse; font-size: 12px; font-weight: bold'>\n";
      echo "<thead>";
      echo "<tr>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>#</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Log ID</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Reason</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Inc/Dec</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Status</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Ref No</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Tot Cost</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Tot Retail</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>Start</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>End</b></font></th>";
      echo "<th ALIGN='LEFT' bgcolor='#C0C0C0'><font face='Arial' size='2'><b>User</b></font></th>";
      echo "</tr>";
      echo "</thead>";
      echo "<tbody>";
      $counter = 1;

      while ($row = odbc_fetch_array($rsIaL)) {
          $strAdjID        = trim(odbc_result($rsIaL, "AdjID"));
          $strReaDesc      = trim(odbc_result($rsIaL, "ReaDesc"));
          $strAdjStatus    = trim(odbc_result($rsIaL, "AdjStatus"));
          $strAdjRefNo     = trim(odbc_result($rsIaL, "AdjRefNo"));
          $strAdjStTS      = trim(odbc_result($rsIaL, "AdjStTS"));
          $strAdjEndTS     = trim(odbc_result($rsIaL, "AdjEndTS"));
          $strAdjUID       = trim(odbc_result($rsIaL, "AdjUID"));
          $strAdjTotCost   = trim(odbc_result($rsIaL, "AdjTotCost"));
          $strAdjTotRetail = trim(odbc_result($rsIaL, "AdjTotRetail"));
          $strAdjIncrease  = trim(odbc_result($rsIaL, "AdjIncrease"));

          if ($bgcolor == '#ffffff') {
              $bgcolor = '#dddddd';
          } else {
              $bgcolor = '#ffffff';
          }
          /*
           I can't get this if/else portion to work and output correctly to the table!
           I may be doing it incorrectly though

          if ($strAdjIncrease == '0') {
              $AdjIncDec == 'Decrease';
          } elseif ($strAdjIncrease == '1') {
              $AdjIncDec == 'Increase';
          } else {
              $AdjIncDec == 'Unknown';
          }
          if ($strAdjStatus == '0') {
              $Status =='Open';
          } elseif ($strAdjStatus == '1') {
              $Status =='Closed';
          } else {
              $Status =='Void';
          }
          */

          echo "<tr>\n";
          echo "<td bgcolor = '$bgcolor' align=center>$counter</td>\n";
          echo "<td bgcolor = '$bgcolor' align=center> <a href='Inventory_Adjustments_Detail.asp?log_id=$strAdjID&store_id=$storeID'>$strAdjID</a></td>\n";
          echo "<td bgcolor = '$bgcolor' align=left>$strReaDesc</td>\n";
          echo "<td bgcolor = '$bgcolor' align=left>$strAdjIncrease</td>\n"; #$AdjIncDec <-if/else variable
          echo "<td bgcolor = '$bgcolor' align=left>".$strAdjStatus."</td>\n"; #$Status <- if/else variable
          echo "<td bgcolor = '$bgcolor' align=left>$strAdjRefNo</td>\n";
          echo "<td bgcolor = '$bgcolor' align=right>$" . number_format($strAdjTotCost, 2) . "</td>\n";
          echo "<td bgcolor = '$bgcolor' align=right>$" . number_format($strAdjTotRetail, 2) . "</td>\n";
          echo "<td bgcolor = '$bgcolor' align=center>" . date('n-j-Y h:i:s A', strtotime($strAdjStTS)) . "</td>\n";
          echo "<td bgcolor = '$bgcolor' align=center>" . date('n-j-Y h:i:s A', strtotime($strAdjEndTS)) . "</td>\n";
          echo "<td bgcolor = '$bgcolor' align=left>$strAdjUID</td>\n";
          echo "</tr>";
          $counter++;
      }

      echo "</tbody>\n";
      echo "</table><br>\n";

  }
4

1 に答える 1

1

正直なところ、私はあなたのコードをよく理解していません...しかし、ここにいくつかの考えがあります:

  1. $strAdjIncrease変数をエコー$strAdjStatusし​​、if/else ステートメントの前にそれらの値をテストしてみてください - デバッグします。たぶん、エラーはどこかにあります。

  2. それがタイプミスなのか、それともあなたが何をしようとしているのかはわかりませんが
    $AdjIncDec == 'Increase';、if/else ステートメント内の (およびその他の変数) には、二重の等号では==なく、単一の等号を含める必要があると思います=!?

  3. if/else ステートメントの===代わりに試してください。==

于 2013-08-04T01:12:32.630 に答える