Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php函数如何将整数转换为输出上的varchar_Php_Mysql_Sql - Fatal编程技术网

Php函数如何将整数转换为输出上的varchar

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

我是新来的,也刚刚开始学习编程

我正在从我的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; }
您可以这样声明数组集:

$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');