Nama : Afel Allaric Absor
NRP : 5025231140
Kelas : Pemrograman Web (E)
Pertemuan 14 Menambahkan Fitur Membuat PDF
Yang berubah dari tugas sebelumnya adalah :
- list-siswa.php :
<?php
require 'config.php';
$sql = "SELECT * FROM calon_siswa";
$result = mysqli_query($conn, $sql);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>List Siswa</title>
</head>
<body>
<h1>Daftar Siswa</h1>
<a href="form-daftar.php">[+] Tambah Siswa Baru</a>
<a href="edit-siswa.php">[+] Edit Data Siswa</a>
<a href="export-all-pdf.php">[+] Ekspor Semua PDF</a> <!-- Tombol Ekspor Semua -->
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>Nama</th>
<th>Alamat</th>
<th>Jenis Kelamin</th>
<th>Agama</th>
<th>Sekolah Asal</th>
<th>Photo</th>
<th>Upload Photo</th>
<th>Ekspor</th>
<th>Hapus</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
<?php while ($row = mysqli_fetch_assoc($result)): ?>
<tr>
<td><?= $row['id'] ?></td>
<td><?= htmlspecialchars($row['nama']) ?></td>
<td><?= htmlspecialchars($row['alamat']) ?></td>
<td><?= $row['jenis_kelamin'] ?></td>
<td><?= htmlspecialchars($row['agama']) ?></td>
<td><?= htmlspecialchars($row['sekolah_asal']) ?></td>
<td>
<?php if ($row['photo']): ?>
<img src="<?= $row['photo'] ?>" alt="Photo" width="100">
<?php else: ?>
Belum ada foto
<?php endif; ?>
</td>
<td>
<form action="upload-photo.php" method="POST" enctype="multipart/form-data">
<input type="file" name="photo" required>
<input type="hidden" name="id" value="<?= $row['id'] ?>">
<button type="submit" name="upload">Upload</button>
</form>
</td>
<td>
<a href="export-row-pdf.php?id=<?= $row['id'] ?>">Ekspor PDF</a>
</td>
<td>
<a href="hapus.php?id=<?= $row['id'] ?>" onclick="return confirm('Apakah Anda yakin ingin menghapus data ini?');">Hapus</a>
</td>
<td>
<a href="edit-siswa.php?id=<?= $row['id'] ?>">Edit</a>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</body>
</html>
Menambahkan "<a href="export-all-pdf.php">[+] Ekspor Semua PDF</a>" untuk tombol export pdf semua data dan "<td> <a href="export-row-pdf.php?id=<?= $row['id'] ?>">Ekspor PDF</a> </td>" untuk tombol export masing-masing row (setiap data 1 siswa).
Kode diatas untuk menampilkan data yang ada di database.
- export-all-pdf.php :
<?php
require 'config.php';
require_once 'tcpdf/tcpdf.php';
// Ambil semua data siswa
$sql = "SELECT * FROM calon_siswa";
$result = mysqli_query($conn, $sql);
// Inisialisasi PDF
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
// Judul PDF
$pdf->Cell(0, 10, 'Daftar Siswa', 0, 1, 'C');
$pdf->Ln(5);
// Header tabel
$header = ['ID', 'Nama', 'Alamat', 'Jenis Kelamin', 'Agama', 'Sekolah Asal'];
foreach ($header as $col) {
$pdf->Cell(30, 10, $col, 1);
}
$pdf->Ln();
// Isi tabel
while ($row = mysqli_fetch_assoc($result)) {
$pdf->Cell(30, 10, $row['id'], 1);
$pdf->Cell(30, 10, $row['nama'], 1);
$pdf->Cell(30, 10, $row['alamat'], 1);
$pdf->Cell(30, 10, $row['jenis_kelamin'], 1);
$pdf->Cell(30, 10, $row['agama'], 1);
$pdf->Cell(30, 10, $row['sekolah_asal'], 1);
$pdf->Ln();
}
// Output PDF
$pdf->Output('daftar_siswa.pdf', 'D');
?>
Kode diatas adalah logika yang digunakan pada saat melakukan export pada semua data yang ada di database (yang dijadikan pdf hanya tabelnya saja, tanpa foto).
- export-row-pdf.php :
<?php
require 'config.php';
require_once 'tcpdf/tcpdf.php';
if (isset($_GET['id'])) {
$id = $_GET['id'];
// Ambil data siswa berdasarkan ID
$sql = "SELECT * FROM calon_siswa WHERE id = $id";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
// Inisialisasi PDF
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
// Judul
$pdf->Cell(0, 10, 'Detail Siswa', 0, 1, 'C');
$pdf->Ln(5);
// Isi Data
$pdf->Cell(50, 10, 'ID:', 0);
$pdf->Cell(0, 10, $row['id'], 0, 1);
$pdf->Cell(50, 10, 'Nama:', 0);
$pdf->Cell(0, 10, $row['nama'], 0, 1);
$pdf->Cell(50, 10, 'Alamat:', 0);
$pdf->Cell(0, 10, $row['alamat'], 0, 1);
$pdf->Cell(50, 10, 'Jenis Kelamin:', 0);
$pdf->Cell(0, 10, $row['jenis_kelamin'], 0, 1);
$pdf->Cell(50, 10, 'Agama:', 0);
$pdf->Cell(0, 10, $row['agama'], 0, 1);
$pdf->Cell(50, 10, 'Sekolah Asal:', 0);
$pdf->Cell(0, 10, $row['sekolah_asal'], 0, 1);
// Tampilkan Foto jika ada
if ($row['photo']) {
$pdf->Ln(10);
$pdf->Image($row['photo'], '', '', 40, 40);
}
// Output PDF
$pdf->Output('detail_siswa.pdf', 'D');
} else {
echo "ID tidak ditemukan!";
}
?>
Kode diatas adalah logika untuk melakukan export untuk setiap rownya (1 data siswa) beserta fotonya.
- Hasil kode saat dijalankan :
- Link repo github berisi source code : https://github.com/afelallaric/Pweb-Export-PDF.git
Komentar
Posting Komentar