我有一个表,其中有一个名为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
。 建议对实际应用程序执行此操作,因为它可确保对任何查询使用相同的字符串。