应用一个函数到MySQL导出到.txt


Applying a function to MySQL export to .txt

我正在从MySQL导出一些数据,这些数据可以通过页面上的复选框选择到。txt文件。

现在我有一个函数来"黑掉"来自MySQL的数字的中间数字,这个函数在我的页面上工作,它看起来像这样:

<?php
$sql="SELECT * FROM table";
$result=mysql_query($sql);
// Count table rows
$count=mysql_num_rows($result);
?>
<?php function blankit($word) {
    return substr($word, 0,2). str_repeat("X",strlen($word)-4) . substr($word, strlen($word)-2,strlen($word));
} 
?>
<?php while($rows=mysql_fetch_array($result, MYSQL_ASSOC)) {
$code = ($rows['used'] == '') ? blankit($rows['code']) : $rows['code']; ?>
<tr class="first">
<td class="tc"><font face="Arial, Helvetica, sans-serif"><? echo $rows['id']; ?></font></td>
<td class="tc"><font face="Arial, Helvetica, sans-serif"><? echo $code; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><? echo $rows['date']; ?></font></td>
<td class="tc"><font face="Arial, Helvetica, sans-serif"><? echo $rows['ip']; ?></font></td>
<td class="tc"><font face="Arial, Helvetica, sans-serif"><? echo $setusedpscde; ?></font></td>
<td class="tc"><input name="checkbox[]" type="checkbox" class="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td> 

</tr>
<?php
}
?>
现在我想在导出到。txt文件时应用相同的函数(blankit),我的导出代码:
    <?php
if ($_POST['exporttxt']) {

for($i=0;$i<count($_POST['checkbox']);$i++){
$export_id = $checkbox[$i];
$text = mysql_query("SELECT code FROM table WHERE id='$export_id'");
$text2 = mysql_fetch_assoc($text);
$text3 = $text2["code"];
$filename = "export";
$filedate = date("Y-m-d");
$fileext = ".txt";
$fileall = $filename.$filedate.$fileext;
 ob_end_clean();
    header("Content-Type: application/octet-stream");
header("Content-disposition: attachment;filename='"$fileall'"");
   header("Content-Type: application/force-download");
    header("Content-Type: application/download");
    header("Content-Description: File Transfer");
    header("Content-Length: ".strlen($output).";'n");

echo chunk_split($text3, 16, "'n");
}
}

?>

我试着改变

$text3 = $text2["code"];

$text3 = ($text2['used'] == '') ? blankit($text2['code']) : $text2['code'];

但是这个X去掉了每个数字的所有中间数字,即使使用的不是= "

这里有什么需要修改的

问题是,在第一个查询中,您选择了所有列,而在第二个查询中,仅选择了代码列

$text = mysql_query("SELECT code FROM table WHERE id='$export_id'");

在这种情况下,$text2['used'] == ''始终为真,因为值为空。你必须添加'used'列

$text = mysql_query("SELECT used, code FROM table WHERE id='$export_id'");