Export to CSV. Maar werkt printf in een array wel?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Cyber Defense Analyst

We are looking for a Senior Cyber Defense Analyst Responsibilities: Design, develop, test and support code providing detection and automation capabilities for cyber security toolsets; Creation of alert, report and search capabilities using advanced data analytic toolsets for cyber defense activities; Provide cyber defense related input to the design and participate in the implementation of cyber security capabilities for internal projects; Participate in complex investigations and threat hunting; Acquire knowledge of changing technologies and threats to provide recommendations for adaptation of technologies or policies; Design, create, organise and deliver staff training, update knowledge management databases and document procedures; Qualifications: Bachelor's

Bekijk vacature »

.NET Developer / Innovatieve software / Virtual Re

Functieomschrijving Als .Net developer werken aan innovatieve software waar onder andere gebruik gemaakt wordt van Virtual Reality? Bijdragen aan een organisatie waar je uitgedaagd wordt om continu verbeteringen en ontwikkelpunten te ontdekken en door te voeren? Werken in de omgeving Putten? Reageer dan nu voor meer informatie! Het pro-actief aandragen van verbeteringen voor de bestaande applicatie; Ontwikkelen van nieuwe functionaliteiten; Doorvoeren van aanpassingen en wijzigingen; Verantwoordelijk voor koppelingen met andere systemen; Op de hoogte blijven van technische ontwikkelingen. Functie-eisen Hbo werk- en denkniveau; Een afgeronde IT gerelateerde opleiding; Minimaal 1 jaar professionele ervaring als developer; Aantoonbare kennis van C#; Initiatiefrijke

Bekijk vacature »

Dirk Huizinga

Dirk Huizinga

16/09/2019 19:05:21
Quote Anchor link
Hey guyz,

Hieronder tref je stuk code die data uit een tabel exporteert naar csv bestand. Dit werkt op een kleinigheid na perfect voor mij.... Echter één van de velden bevat een nummer. Dat nummer zou altijd 6 karakters moeten zijn en indien nodig voorafgaan met voorloopnullen. Maar dit is niet zo eenvoudig als het lijkt te zijn.

De 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

// Database Connection
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "xxxxxxxxxxx";
 
 $conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

 
if(isset($_GET['export'])){
if($_GET['export'] == 'true'){
$query = mysqli_query($conn, 'select * from m2r'); // Get data from Database from demo table
 
 
    $delimiter = ",";
    $filename = "significant_" . date('Ymd') . ".csv"; // Create file name
    
    //create a file pointer

    $f = fopen('php://memory', 'w');
    
    //set column headers
    $fields = array('Pers.nr', 'Rol', 'Mutatie');
    fputcsv($f, $fields, $delimiter);
    
    //output each row of the data, format line as csv and write to file pointer
    while($row = $query->fetch_assoc()){
        
        $lineData = array($row['personeelsnummer'], $row['uniekKenmerkRol'], $row['mutatie']);
        fputcsv($f, $lineData, $delimiter);
    }

    
    //move back to beginning of file
    fseek($f, 0);
    
    //set headers to download file rather than displayed
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="' . $filename . '";');
    
    //output all remaining data on a file pointer
    fpassthru($f);
 
 }
}


?>



Nu dacht ik van.. he, dat is simpel op te lossen met printf maar helaas.

ik heb de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$lineData = array($row['personeelsnummer'], $row['uniekKenmerkRol'], $row['mutatie']);
        fputcsv($f, $lineData, $delimiter);


proberen aan te passen naar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$lineData = array( printf("%06d", $row['personeelsnummer']), $row['uniekKenmerkRol'], $row['mutatie']);
        fputcsv($f, $lineData, $delimiter);



Maar dit is dus te simpel gedacht..
Klaarblijkelijk werkt dit niet in een array. Maar een andere methode ken ik niet. Dus ik zou het niet weten. Hoe kan ik dit aanpassen? wie weet hierin de oplossing?
 
PHP hulp

PHP hulp

17/10/2019 13:25:58
 
Adoptive Solution

Adoptive Solution

16/09/2019 19:14:20
Quote Anchor link
Als het niet in de array lukt, probeer het dan buiten de array.

Of anders dit :

https://www.php.net/manual/en/function.str-pad.php
 
Dirk Huizinga

Dirk Huizinga

16/09/2019 19:28:38
Quote Anchor link
Adoptive Solution op 16/09/2019 19:14:20:
Als het niet in de array lukt, probeer het dan buiten de array.

Of anders dit :

https://www.php.net/manual/en/function.str-pad.php



dat str pad is complex gebeuren... kijken of ik het buiten de array kan trekken


Toevoeging op 16/09/2019 20:04:28:

Adoptive Solution thnx voor de tip van str-pad.... is toch niet zo complex als ik in eerste instantie dacht.... ik kende de functie niet maar het is voor mij voor nu wel de oplossing.

de regel ziet er dan als volgt uit voor de geinteresseerden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$lineData = array(str_pad($row['personeelsnummer'], 6, "0", STR_PAD_LEFT), $row['uniekKenmerkRol'], $row['mutatie']);



topic mag gesloten worden....
 



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.