使用 php 从数据库中的整数创建并回显一个字符串
Create and echo a string from integers in database with php
我 select 我的数据库中的一列 'status' 包含 3 个整数。我希望 0,1,2 在用户进入页面后向用户回显你好,再见,无论什么。
0 = hello
1= goodbye
2= whatever
我找不到任何例子来说明你如何用 php 回应这个。
我看过很多示例,这些示例只是为 $var = 1 $var= hello... 等提供冷代码。我看不出这如何适合一个真实的例子。
到目前为止,我 select 列和状态将回显,但状态 0 前面有一个 1,状态 1 末尾有一个 1。
echo "<td>".( $row["status"]==0 ? : 'Hello' ). ( $row["status"]==1 ? : 'Goodbye' ) ."</td>";
Table 结果
Status:
hello1
hello1
hello1
1goodbye
hello1
1goodbye
您有几个选择:
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
只是修复你目前拥有的东西,因为你使用的是 ternary operator, you need to use it correctly. Also need to be aware that checking ==1 checks for truthiness 而不是 1,所以 2 也会匹配,所以改用 === 代替:
改为:
echo "<td>". ( $row["status"]===0 ? 'Hello' : '' ) . ( $row["status"]===1 ? 'Goodbye' : '' ) . ( $row["status"]===2 ? 'Whatever' : '' ) . "</td>";
您可以使用数组来保存它可能的各种选项。它几乎就像一个小型查找 table,但节省了到另一个数据库的链接 table...
$options = [ 0 => "hello", 1 => "goodbye", 2 => "whatever" ];
$row["status"] = 1;
echo "<td>". $options[$row["status"]]."</td>";
给...
<td>goodbye</td>
我 select 我的数据库中的一列 'status' 包含 3 个整数。我希望 0,1,2 在用户进入页面后向用户回显你好,再见,无论什么。
0 = hello
1= goodbye
2= whatever
我找不到任何例子来说明你如何用 php 回应这个。
我看过很多示例,这些示例只是为 $var = 1 $var= hello... 等提供冷代码。我看不出这如何适合一个真实的例子。
到目前为止,我 select 列和状态将回显,但状态 0 前面有一个 1,状态 1 末尾有一个 1。
echo "<td>".( $row["status"]==0 ? : 'Hello' ). ( $row["status"]==1 ? : 'Goodbye' ) ."</td>";
Table 结果
Status:
hello1
hello1
hello1
1goodbye
hello1
1goodbye
您有几个选择:
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
只是修复你目前拥有的东西,因为你使用的是 ternary operator, you need to use it correctly. Also need to be aware that checking ==1 checks for truthiness 而不是 1,所以 2 也会匹配,所以改用 === 代替:
改为:
echo "<td>". ( $row["status"]===0 ? 'Hello' : '' ) . ( $row["status"]===1 ? 'Goodbye' : '' ) . ( $row["status"]===2 ? 'Whatever' : '' ) . "</td>";
您可以使用数组来保存它可能的各种选项。它几乎就像一个小型查找 table,但节省了到另一个数据库的链接 table...
$options = [ 0 => "hello", 1 => "goodbye", 2 => "whatever" ];
$row["status"] = 1;
echo "<td>". $options[$row["status"]]."</td>";
给...
<td>goodbye</td>