2013-03-18 145 views
0

即時通訊工作在基於php的系統上。其功能之一是允許用戶下載包含我的數據庫中的一個表中的所有信息的Excel文件。我的問題是,該信息的一個數據被分類給其他用戶。因此,我想將該數據的輸出轉換爲一串星號。將字符串轉換爲星號

<?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結果。謝謝。

+5

只是不選擇分類的用戶數據?選擇所有列,但一個:http://stackoverflow.com/questions/9122/select-all-columns-except-one-in-mysql – 2013-03-18 01:17:50

+0

只是輸出一個固定的星號字符串...'「****** **「' – scunliffe 2013-03-18 01:19:17

+0

excel文件中的輸出需要以星號字符串的形式顯示。但只有包含comm_string.not所有數據的數據纔有comm_string – user3428185 2013-03-18 01:30:44

回答

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而不是該代碼

+0

Hanky Panky,但我需要在具有comm_string的數據行中顯示結果(並非所有數據都有comm_string)。以星號的形式。 – user3428185 2013-03-18 01:28:14

0

試試這個:

while ($row = mysql_fetch_assoc($result)) 
{ 
    $row['Comm_String'] = preg_replace('/./', '*', $row['Comm_String']); 
    echo implode("\t",($row)) . "\r\n"; 
} 
+0

這工作出色!謝謝J.D!的xD – user3428185 2013-03-18 01:40:01