更改表格中显示的结果


Change the result that shown in a table

我有一个表,其中有一个名为result的列,结果是银行通过post方法发送给我的变量...值为 : 1, 2 ...所以当银行发送给我 1 时,我想向用户显示它已接受,如果是 2,则向用户显示其拒绝......我需要一个 if 公式来完成其余的工作。

<?php
$id_get= $_POST['id_get'];
$trans_id = $_POST['trans_id'];
$servername = "localhost";
$username = "blah";
$password = "blah";
$dbname = "blah";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
?>
<?php
mysqli_query($conn, "SET NAMES 'utf8'");
$result = mysqli_query($conn,"SELECT id_get, trans_id, result FROM users");
echo "<table border='1' width='800' align='center'>
<tr>
<th>ID</th>
<th>transaction Result</th>
</tr>";

while($row = mysqli_fetch_array($result))
{
echo "<tr align='center'>";
echo "<td width=10%>" . $row['id_get'] . "</td>";
echo "<td width=10%>" . $row['trans_id'] . "</td>";
echo "</tr>";
 }
echo "</table>";?><br>
<div align="center">
<?php 
 mysqli_close($conn);
 ?>

PHP 中的用例

$resultname= $row['trans_get'];
switch($resultname){
   case("1"):
         echo "Accepted";
   break;
   case("2"):
         echo "Rejected";
   break;
   default:
         echo "N/A";
   break;
}    

所以它应该是这样的:

 while($row = mysqli_fetch_array($result))
    {
   $resultname= $row['trans_get'];
    switch($resultname){
       case("1"):
             echo "Accepted";
       break;
       case("2"):
             echo "Rejected";
       break;
       default:
             echo "N/A";
       break;
    }    
    echo "<tr align='center'>";
    echo "<td width=10%>" . $row['id_get']. "</td>";
    echo "<td width=10%>" . $resultname . "</td>";
    echo "</tr>";
     }

您可以在while($row = mysqli_fetch_array($result))块内检查$row['result']的值并相应地显示<td>的内容

while($row = mysqli_fetch_array($result))
{
    echo "<tr align='center'>";
    echo "<td width=10%>" . $row['id_get'] . "</td>";
    echo "<td width=10%>" . $row['trans_id'] . "</td>";
    if ($row['result'] == '1') {
        echo "<td width=10%>Accepted</td>";
    }
    else if ($row['result'] == '2') {
        echo "<td width=10%>Rejected</td>";
    }
    else {
        echo "<td width=10%>Unknown</td>";
    }
    echo "</tr>";
}

或者,您可以将查询更改为此查询

$result = mysqli_query($conn,"SELECT id_get, trans_id, (CASE WHEN result = 1 THEN 'Accepted' WHEN result = 2 THEN 'Rejected' ELSE 'Unknown' END) AS result_description FROM users");

并简单地显示$row['result_description']

while($row = mysqli_fetch_array($result))
{
    echo "<tr align='center'>";
    echo "<td width=10%>" . $row['id_get'] . "</td>";
    echo "<td width=10%>" . $row['trans_id'] . "</td>";
    echo "<td width=10%>" . $row['result_description'] . "</td>";
    echo "</tr>";
}
您可以使用

case语句:

SELECT id_get, trans_id,
       (case when result = 1 then 'Accepted'
             when result = 2 then 'Rejected'
             else 'Unknown'
        end) as ResultString
FROM users;

您还可以在数据库中创建引用表并使用 join 。 建议对实际应用程序执行此操作,因为它可确保对任何查询使用相同的字符串。