使用php从数据库中的整数创建并回显字符串

bd1hkmkf  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(304)

我从我的数据库中选择了一个包含3个整数的“status”列。我会希望0,1,2回显你好,再见,无论什么,一旦他们在页面上的用户。

0 = hello
1= goodbye
2= whatever

我找不到任何例子,你如何呼应这与php。
我看过大量的例子,只是给出了$var=1$var=hello的冷代码。。。等。我看不出这和一个真实的例子有什么关系。
到目前为止,我选择了列,状态将回显,但状态0前面有一个1,状态1末尾有一个1。

echo "<td>".( $row["status"]==0 ?  : 'Hello' ). ( $row["status"]==1 ?  : 'Goodbye' ) ."</td>";

表格结果

Status:
hello1
hello1
hello1
1goodbye
hello1
1goodbye
mkshixfv

mkshixfv1#

你有几个选择:
php开关语句:

switch ($row["status"]) {
    case 0: $var = "hello"; break;
    case 1: $var = "goodbye"; break;
    case 2: $var = "whatever"; break;
}

完整示例:

$str = "<td>";
switch ($row["status"]) {
    case 0: $str .= "hello"; break;
    case 1: $str .= "goodbye"; break;
    case 2: $str .= "whatever"; break;
}
$str .= "</td>";
echo $str;

或者你可以在mysql中做一个case语句:

SELECT status,
CASE
    WHEN status = 1 THEN "Hello"
    WHEN status = 2 THEN "Goodbye"
    WHEN status = 3 THEN "Whatever"
END
FROM yourTable
vdzxcuhz

vdzxcuhz2#

您可以使用一个数组来保存它可以是的各种选项。它几乎像一个小的查找表,但保存链接到另一个数据库表。。。

$options = [ 0 => "hello", 1 => "goodbye", 2 => "whatever" ];
$row["status"] = 1;

echo "<td>". $options[$row["status"]]."</td>";

给予。。。

<td>goodbye</td>
ig9co6j1

ig9co6j13#

只需修复当前的问题,因为您使用的是三元运算符,所以需要正确使用它。还需要注意,checking==1检查真实性而不是1,因此2也会匹配,所以改为使用===1:
更改为:

echo "<td>". ( $row["status"]===0 ? 'Hello' : '' ) . ( $row["status"]===1 ? 'Goodbye' : '' ) . ( $row["status"]===2 ? 'Whatever' : '' ) . "</td>";

相关问题