2011-12-20 1 views
0

Я экспортирую некоторые данные из MySQL, которые можно выбрать с помощью флажков на странице в 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 
} 
?> 

Теперь я хочу, чтобы применить этот же функция (blankit) при экспорте в .txt файл, мой экспортный код:

<?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'ed из всех средних цифр любого числа, даже если они используются не = «»

Что я должен изменить здесь?

ответ

0

Проблема заключается в том, что для 1-го запроса выбраны все столбцы и в 2 только код столбца

$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'"); 
Смежные вопросы