我从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都会出现每个数字的所有中间数字我需要在这里更改什么?
答案 0 :(得分:0)
问题在于,对于第一个查询,您选择了所有列,而在第二个查询中仅选择了代码列
$text = mysql_query("SELECT code FROM table WHERE id='$export_id'");
在这种情况下,$text2['used'] == ''
始终为true,因为值为null。您必须添加“已使用”列
$text = mysql_query("SELECT used, code FROM table WHERE id='$export_id'");