FPDF aanmaken op basis van DB users
Nu zou ik graag pdf voor iedere gebruiker uit de DB automatisch willen aanmaken.
Vanuit een eerdere vraag heb ik het wel al zover dat ik een pagina met alle id's zie en als ik daar op klik wordt de pdf wel genegereerd en opgeslagen.
Maar ik wil graag met een druk op de knop alle pdf's tegelijk aanmaken, waar gaat het fout in mijn code?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Als er geen verbinding wordt gemaakt
if (!$mysqli) {
echo "Kan geen verbinding maken: " .mysqli_connect_errno() . PHP_EOL;
exit; // stop het script
}
// Plaats de query in het geheugen ($sql)
$sql = "SELECT * FROM user";
// voer de query uit
$result = mysqli_query($mysqli, $sql);
// controleer of de query uitgevoerd kan worden
if($result == true){
// tel of er records gevonden zijn (hoger dan aantal wat 0 is)
if(mysqli_num_rows($result)> 0) {
// haal alle data op en verwerk deze in een loop in een array
while($item = mysqli_fetch_assoc($result)) {
echo '<a href="create_pdf.php?id='.$item['voice_id'].'">'.$item['voice_id']. '</a><br>';
}
} else {
// helaas, het aantal is 0...
echo "Er is niemand gevonden in de tabel.";
}
} else {
// als de query niet uitgevoerd wilt worden...
echo "Er is een fout opgetreden bij uitvoer van de query: ".mysqli_error($mysqli);
}
if (!$mysqli) {
echo "Kan geen verbinding maken: " .mysqli_connect_errno() . PHP_EOL;
exit; // stop het script
}
// Plaats de query in het geheugen ($sql)
$sql = "SELECT * FROM user";
// voer de query uit
$result = mysqli_query($mysqli, $sql);
// controleer of de query uitgevoerd kan worden
if($result == true){
// tel of er records gevonden zijn (hoger dan aantal wat 0 is)
if(mysqli_num_rows($result)> 0) {
// haal alle data op en verwerk deze in een loop in een array
while($item = mysqli_fetch_assoc($result)) {
echo '<a href="create_pdf.php?id='.$item['voice_id'].'">'.$item['voice_id']. '</a><br>';
}
} else {
// helaas, het aantal is 0...
echo "Er is niemand gevonden in de tabel.";
}
} else {
// als de query niet uitgevoerd wilt worden...
echo "Er is een fout opgetreden bij uitvoer van de query: ".mysqli_error($mysqli);
}
Gewijzigd op 16/09/2024 22:15:01 door Ruud Clauwers
Je moet de logica voor het aanmaken in die while() { } bouwen.
Gewijzigd op 16/09/2024 22:44:50 door - Ariën -
Met gokken kom je niet ver, is mij altijd al geleerd.
Toevoeging op 17/09/2024 08:09:35:
Hoe ziet de code eruit om hem te genereren?
Als ik op de link klik zoals de huidige situatie nu is, wordt de PDF aangemaakt en opgeslagen in de map.
Ik begrijp dat ik een loop moet maken zodat het "create_pdf.php" bestand wordt uitgevoerd op alle records uit de DB.
Gewijzigd op 17/09/2024 12:18:38 door - Ariën -
Dan maak ik er een functie van
Een goed idee!
bijvoorbeeld door het te laten reageren op create_pdf.php?id=all of create_pdf.php?all=1
Waar je nu een query opbouwt met
SELECT.... WHERE id = {$_GET['id']}
moet je dan if ($_GET['id'] == 'all') of isset($_GET['all']) {
SELECT .... WHERE 1=1 gebruiken.
Daarna voer je de query uit, en dis zal dan niet 1 maar meerdere results geven.
Afhankelijk van hoe je daar tot nu toe checkt of er wel 1 of minder results waren, zal je dat aan moeten passen, zodat je meerdere pdf's aanmaakt.
Het is me gelukt bedankt voor de berichten.