Toon posts:

met een array velden uit database halen

Pagina: 1
Acties:

Verwijderd

Topicstarter
in mijn cms wil ik dat de gebruikers de data in excel kunnen openen, dus ik exporteer de gegevens naar een .xls bestand

Een gebruiker moet wel zelf de velden kunnen selecteren die hij in zijn excel sheet wil hebben.

Heb dus een form gemaak waarin de velden die je wilt hebben kunt selecteren, deze worden vervolgen in een array gezet.

Hoe kan ik in de query de velden uit de tabel halen die in de array staan?

script
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 
<?php

//export naar excel 

require("config.php"); 

// Form, laat de vinden zien waaruit gekozen kan worden
if ($preveld AND !$veld) { 

    ?> 
    <form name="form1" method="post" action="?veld=1"> 
    <table width="45%" border="0" cellpadding="0" cellspacing="0"> 
    <? 

             
            $fields = mysql_query('SELECT naam1, naam2, email, nummer, gsm FROM users');  
            $field_num = mysql_num_fields($fields); 
            $i=0; 

            echo $field_num .  " veld(en) gevonden<br>\n"; 

            while ($i < $field_num){ 

            $name  = mysql_field_name  ($fields, $i); 
     ?> 
        <tr> 
          <td width="31%"><? echo $name; ?></td> 
          <td width="69%"><input name="veldnaam[]" type="checkbox" id="veld" 

value="<? echo $name; ?>,"></td> 
        </tr> 
     <?               
           $i++; 
            } 
     ?> 

      </table> 
      <p> 
        <input type="submit" name="Submit" value="exporteer naar excel"> 
      </p> 
     </form> 
    <?  
} 

// haal de gekozen velden uit database en open excel
if ($veld AND !$preveld) { 

    $veldnamen = $_POST['veldnaam'];  

//---------------------------------------------------------------- 

    $result = mysql_query('SELECT ??????????? FROM users');  
    $count = mysql_num_fields($result);  

//-----------------------------------------------------------------     
    for ($i = 0; $i < $count; $i++){  
        $header .= mysql_field_name($result, $i)."\t";  
    }  

    while($row = mysql_fetch_row($result)){          
        $line = '';  
        foreach($row as $value){  
            if(!isset($value)){  
                $line .= " \t";  
            }  
            elseif ($value != ''){  
                $line .= $value."\t";  
            }  
            else{  
                $line .= " \t";  
            }  
        }  
        $line = str_replace("\t".'$', '', $line); 
        $data .= trim($line)."\t \n";  
    }  

    header("Content-Type: application/vnd.ms-excel");  
    header("Content-Disposition: attachment; filename=excelfile.xls");  
    header("Pragma: no-cache");  
    header("Expires: 0");  
    echo $header."\n".$data;  
} 

?> 

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 23-08 18:13
Ehhh... is je query dan niet als volgt?

PHP:
1
2
3
4
5
$query = 'SELECT ';
foreach ($_POST['veldnaam'] as $v)
    $query .= $v.', ';
$query = substr($query, 0, -2); // laatste komma weghalen
$query .= ' From users';