更改表中显示的结果

时间:2014-11-15 14:51:55

标签: php mysql

我有一个表有一个名为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);
 ?>

3 个答案:

答案 0 :(得分:1)

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>";
     }

答案 1 :(得分:0)

您可以使用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。建议用于实际应用程序,因为它确保将相同的字符串用于任何查询。

答案 2 :(得分:0)

您可以检查$row['result']块中while($row = mysqli_fetch_array($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>";
}