FPDF aanmaken op basis van DB users

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruud Clauwers

Ruud Clauwers

16/09/2024 22:13:34
Quote Anchor link
Ik heb een FPDF pagina aangemaakt met php deze haalt gegevens uit de DB.
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)
PHP script in nieuw venster Selecteer het PHP script
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
// 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);
}
Gewijzigd op 16/09/2024 22:15:01 door Ruud Clauwers
 
PHP hulp

PHP hulp

19/09/2024 18:29:20
 
- Ariën  -
Beheerder

- Ariën -

16/09/2024 22:44:39
Quote Anchor link
Je maakt ze niet aan, maar je maakt enkel een linkje nu.

Je moet de logica voor het aanmaken in die while() { } bouwen.
Gewijzigd op 16/09/2024 22:44:50 door - Ariën -
 
Ruud Clauwers

Ruud Clauwers

16/09/2024 23:30:15
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
{echo create_pdf.php?id=$klant[voice_id];}
 
- Ariën  -
Beheerder

- Ariën -

17/09/2024 00:06:42
Quote Anchor link
Klopt echt niks van ;-)

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?
 
Adoptive Solution

Adoptive Solution

17/09/2024 09:46:14
Quote Anchor link
Ik vond dit. Inclusief handleiding (tutorial).

http://www.fpdf.org/
 
Ruud Clauwers

Ruud Clauwers

17/09/2024 12:08:59
Quote Anchor link
De code voor het aanmaken van de pdf werkt.
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.
 
- Ariën  -
Beheerder

- Ariën -

17/09/2024 12:17:15
Quote Anchor link
Dan moet je de code die je gebruikt bij het genereren van de PDF, in die loop zetten.
Gewijzigd op 17/09/2024 12:18:38 door - Ariën -
 
Ruud Clauwers

Ruud Clauwers

17/09/2024 12:20:34
Quote Anchor link
Dan maak ik er een functie van
 
- Ariën  -
Beheerder

- Ariën -

17/09/2024 12:31:18
Quote Anchor link
Een goed idee!
 
Ivo P

Ivo P

17/09/2024 14:53:15
Quote Anchor link
De aanpassing moet gedaan worden in het script create_pdf.php

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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.