Zdaję sobie z tego sprawę, że nie gwarantuje to pobrania plików, ale w w mojej sytuacji jest to pewne, gdyż plik będzie miał rozmiar maksymalnie kilkanaście kilobajtów i jest potrzebny do dalszej pracy. Nawet gdyby się nie pobrał to kolejne kliknięcie spowoduje jego pobranie, ale wtedy nie oznaczy go jako "TAK" bo wcześniej został już oznaczony.
Podsumowując chcę podpiąć pod 1 przycisk 2 funkcje: Oznaczenie jako pobrany - stąd komunikat i pobranie go jako plik excela.
Sam plik wykonujący eksport mam już napisany, ale niestety pobiera mi wszystkie wartości z bazy danych, a nie tylko te z określonego rekordu.
Nie potrafię zmusić go do pobrania tylko konkretnego klikniętego rekordu.
<?php
$conn = new mysqli('localhost', 'root', '');
mysqli_select_db($conn, 'baza_test');
$setSql = "SELECT id, data_dodania, pobrane FROM tabela";
$setRec = mysqli_query($conn, $setSql);
$columnHeader = '';
$columnHeader = "ID" . "\t" .
"DATA DODANIA" . "\t" .
"POBRANE" . "\t" .
$setData = '';
while ($rec = mysqli_fetch_row($setRec)) {
$rowData = '';
foreach ($rec as $value) {
$value = '"' . $value . '"' . "\t";
$rowData .= $value;
}
$setData .= trim($rowData) . "\n";
}
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=eksport.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo ucwords($columnHeader) . "\n" . $setData . "\n";
?>
Plik edytuj.php wygląda tak:
<?php
require 'fls/566hg.php';
?>
<?php
if(isset($_POST['update']))
{
$id = $_POST['id'];
$data_dodania = $_POST['data_dodania'];
$pobrane=$_POST['pobrane'];
$kod=$_POST['kod'];
{
$result = mysqli_query($mysqli, "UPDATE tabela SET data_dodania='$data_dodania', pobrane='$pobrane', kod='$kod' WHERE id=$id");
header("Location: index.php");
}
}
?>
<?php
$id = $_GET['id'];
$result = mysqli_query($mysqli, "SELECT * FROM tabela WHERE id=$id");
while($wynik = mysqli_fetch_array($result))
{
$data_dodania = $wynik['data_dodania'];
$pobrane = $wynik['pobrane'];
$kod = $wynik['kod'];
}
?>
<html lang="pl-PL">
<head>
</head>
<body>
<form action="edytuj.php" method="post">
<div style="width:40%; margin: auto; padding-top: 20px;">
<hr>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="15%" class="input">DATA POBRANIA</td>
<td><input type="text" name="data_pobrania" value="<?php echo $data_pobrania;?>" class="pole"></td>
</tr>
<tr>
<td width="15%" class="input">KOD</td>
<td><input type="text" name="kod" value="<?php echo $kod;?>" class="pole"></td>
</tr>
<tr>
<td width="15%" class="input">POBRANE</td>
<td><input type="text" name="pobrane" value="NIE" class="pole"></td>
</tr>
<tr>
<td>OPCJE</td>
<td><input type="hidden" name="id" value="<?php echo $_GET['id'];?>">
<input type="submit" name="update" class="przycisk" value="ZAPISZ ZMIANY"></td>
</tr>
</table>
</form>
</div>
</body>
</html>