Php函数如何将整数转换为输出上的varchar
我是新来的,也刚刚开始学习编程 我正在从我的web项目创建PDF文件,我的表中有一个整数列,其值为0,1,2。PDF格式的输出是数字,但我想将数字更改为文本 示例:如果“状态”为1,则输出为“批准”;如果“状态”为2,则输出为“拒绝”;如果“状态”为0,则输出为“正在处理” 函数fetch_data() { $output=''; $conn=mysqli_connect(“localhost”、“root”、“system”); $sql=“从选项卡中选择状态”; $result=mysqli\u查询($conn,$sql); while($row=mysqli\u fetch\u数组($result)) { $output.=' “.$row[“状态”]” '; } 返回$output; }Php函数如何将整数转换为输出上的varchar,php,mysql,sql,Php,Mysql,Sql,我是新来的,也刚刚开始学习编程 我正在从我的web项目创建PDF文件,我的表中有一个整数列,其值为0,1,2。PDF格式的输出是数字,但我想将数字更改为文本 示例:如果“状态”为1,则输出为“批准”;如果“状态”为2,则输出为“拒绝”;如果“状态”为0,则输出为“正在处理” 函数fetch_data() { $output=''; $conn=mysqli_connect(“localhost”、“root”、“system”); $sql=“从选项卡中选择状态”; $result=mysq
您可以这样声明数组集:
$status_array = array(1=>'Approved', 2=>'Declined', 0=>'on Process');
并将数组用作:
$status_array[ $row["Status"] ];
使用状态数组是最快和最干净的:
$status = [
'On Process',
'Approved',
'Declined'
];
echo $status[$row["Status"]];
使用您的代码:
function fetch_data() {
$status = [
'On Process',
'Approved',
'Declined'
];
$output = '';
$conn = mysqli_connect("localhost", "root", "", "system");
$sql = "SELECT Status from tabel";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($result)) {
$output .= '<tr>
<td>'.$status[$row["Status"]].'</td>
</tr>';
}
return $output;
}
新代码:
function fetch_data() {
$output = '';
$conn = mysqli_connect("localhost", "root", "", "system");
$sql = "SELECT t.StatusName from table s JOIN statusText t ON s.Status = t.StatusId";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($result)) {
$output .= '<tr>
<td>'.$status[$row["StatusName "]].'</td>
</tr>';
}
return $output;
}
函数fetch_data(){
$output='';
$conn=mysqli_connect(“localhost”、“root”、“system”);
$sql=“从表s中选择t.StatusName,在s.Status=t.StatusId上连接statusText t”;
$result=mysqli\u查询($conn,$sql);
而($row=mysqli_fetch_数组($result)){
$output.='
“.$status[$row[“StatusName”].”
';
}
返回$output;
}
创建一个查找列表,只需:
$statuses = [
'On Process',
'Approved',
'Declined'
];
及
$output.='
' . $状态[$row[“状态”].'
';
因为您的标签特别要求if
语句:
while($row = mysqli_fetch_array($result)){
$result = "";
if($row["Status"] == 0){
$result = "On Process";
}
if($row["Status"]){
$result = "Approved";
}
if($row["Status"]){
$result = "Declined";
}
$output .= '<tr><td>'.$result.'</td> </tr>';
}
return $output;
}
while($row=mysqli\u fetch\u数组($result)){
$result=“”;
如果($row[“Status”]==0){
$result=“On Process”;
}
如果($row[“Status”]){
$result=“已批准”;
}
如果($row[“Status”]){
$result=“谢绝”;
}
$output.=''.$result';
}
返回$output;
}
一个好方法是创建一个普通数组或关联数组来存储数字:0、1、2和每个数字代表的文本。这样,您就可以随时扩展程序以包含更多的状态代码。在PHP
中,您可以创建如下普通数组:
$statuses = array(
"On Process",
"Approved",
"Declined"
);
$statuses = array(1=>'Approved', 2=>'Declined', 0=>'On Process');
如果使用普通数组,则只需使用$statuses[$status\u number]
即可访问所需文本,因此要显示已拒绝的
,只需键入$statuses[2]
。但是,当您想要扩展此功能以包含更多状态时,使用普通数组可能会导致问题,特别是当您想要更改状态的排列时,您必须在程序中出现的任何位置更改它。
使用关联数组,它将如下所示:
$statuses = array(
"On Process",
"Approved",
"Declined"
);
$statuses = array(1=>'Approved', 2=>'Declined', 0=>'On Process');
使用关联数组实际上没有什么好处,因为您使用整数作为键,这与使用普通数组中相同的方法访问值没有什么不同。使用状态及其值创建另一个表。根据状态在select查询中与该表建立联接。通过这种方式,您还可以存储更多的状态及其值John Conde的答案最能解决扩展程序以包含更多状态的问题
$statuses = array(1=>'Approved', 2=>'Declined', 0=>'On Process');