0

私はphpベースのシステムに取り組んでいます。その機能の 1 つは、ユーザーがデータベース内のテーブルの 1 つにすべての情報を含む Excel ファイルをダウンロードできるようにすることです。私の問題は、その情報の 1 つのデータが他のユーザーに分類されることです。したがって、そのデータの出力をアスタリスクの文字列に変換したいと思います。

<?PHP


 //MySQL Database Connect
 include 'datalogin.php'; 

 function cleanData(&$str)
 { 
 $str = preg_replace("/\t/", "\\t", $str); 
 $str = preg_replace("/\r?\n/", "\\n", $str); 
 if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; 
 }
 # filename for download 
$filename = "website_data_" . date('Ymd') . ".xls"; 
 header("Content-Disposition: attachment; filename=\"$filename\""); 
 header("Content-Type: application/vnd.ms-excel");  
 $flag = false;

 //$result = pg_query("SELECT * FROM data_mapping ORDER BY CE_Hostname") or die('Query     failed!'); 
/*$query = "SELECT * FROM data_mapping";

while(false !== ($row = pg_fetch_assoc($result))) {  



//while(false !== ($row = pg_fetch_assoc($result))) {  


//$result=mysql_query($query);

$row=mysql_fetch_array($result);
$row=mysql_fetch_assoc ($result);


//$row=$row['Cust_Segment'];
// foreach($data as $row) 

 # display field/column names as first row
 if(!$flag) { 
 echo implode("\t", array_keys($row)) . "\r\n"; 

 $flag = true;  
 }
 array_walk($row, 'cleanData'); 
 echo implode("\t",($row)) . "\r\n";  

 }
 */


 $sql = 'SELECT CE_Hostname, Cust_Segment, Cust_Site_Name, CE_WAN_IP_Addr,     CE_Bkp_IP_Addr, Cust_Name, Svc_Type, com_string FROM data_mapping';

 $result = mysql_query($sql);

 if (!$result) {
    echo "DB Error, could not query the database<br>";
    echo 'MySQL Error: ' . mysql_error();
    exit;
    }
echo "Hostname\t Group/System\t Site Name\t IP ADDR\t BKP IP ADDR\t System Name\t     Device Type\t Comm_String\r\n";
     while ($row = mysql_fetch_assoc($result)) {
    echo implode("\t",($row)) . "\r\n";  
    }

 mysql_free_result($result);


//exit; 

 ?>

comm_stringの結果だけ変換したい。ありがとう。

4

2 に答える 2

0
$sql = 'SELECT CE_Hostname, Cust_Segment, Cust_Site_Name, CE_WAN_IP_Addr,     CE_Bkp_IP_Addr, Cust_Name, Svc_Type, com_string FROM data_mapping';

分類されたフィールドを含まないように簡単に更新できます

$sql = 'SELECT CE_Hostname, Cust_Segment, Cust_Site_Name, CE_WAN_IP_Addr,     CE_Bkp_IP_Addr, Cust_Name, Svc_Type FROM data_mapping';

または、PHPコードを変更せずに値を表示したい場合は、次のことができます

$sql = 'SELECT CE_Hostname, Cust_Segment, Cust_Site_Name, CE_WAN_IP_Addr,     CE_Bkp_IP_Addr, Cust_Name, Svc_Type, 'SECRET' FROM data_mapping';

これはSECRET、そのコードの代わりに表示されます

于 2013-03-18T01:22:56.060 に答える
0

これを試して:

while ($row = mysql_fetch_assoc($result))
{
    $row['Comm_String'] = preg_replace( '/./', '*', $row['Comm_String'] );
    echo implode("\t",($row)) . "\r\n";  
}
于 2013-03-18T01:29:21.087 に答える