kan ik excel data (of csv) inlezen in php, ik wil ze niet meteen in mysql zetten omdat ik enkele controles op de data moet doen...
Ik heb dit script geschreven naar aanleiding van een project op school. Met dit script kan u een tekst bestand Komma gescheiden waarden (Comma Seperated Values) importeren.
Het karakter waarop de waardes gescheiden dienen te worden is variabel.
U kunt aangeven welke veldnamen uit uw mysql database er ingevuld mogen worden in de array $attributen. Zo kunt je bijvoorbeeld alleen de emailadressen uit een CSV selecteren.
Dit script lijkt me alleen bruikbaar op superuser niveau van een website. Ik zou zeggen download het script eens en probeer het eens uit. Plaatjes zijn te downloaden op http://ron.blaat-toening.nl/images.zip
Niet zeuren over de programmeerstijl. Dit was haastwerk
Het karakter waarop de waardes gescheiden dienen te worden is variabel.
U kunt aangeven welke veldnamen uit uw mysql database er ingevuld mogen worden in de array $attributen. Zo kunt je bijvoorbeeld alleen de emailadressen uit een CSV selecteren.
Dit script lijkt me alleen bruikbaar op superuser niveau van een website. Ik zou zeggen download het script eens en probeer het eens uit. Plaatjes zijn te downloaden op http://ron.blaat-toening.nl/images.zip
Niet zeuren over de programmeerstijl. Dit was haastwerk
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
| <? /* CSV Importer v1.1 by Ron Thijssen U mag dit script gratis gebruiken en aanpassen naar uw eigen wensen. Met mijn persoonlijke toestemming mag u uw aangepaste versie publiceren mits deze tekst in de source te vinden zal zijn. Gebruik van dit script is voor eigen risico, de maker van dit script kan op geen enkele wijze aansprakelijk gesteld worden voor eventuele schade. All rights reserved */ // plaats hier de mysql connectie code // $tablenaam De tabelnaam uit de database $tablenaam = "gebruiker"; // $attributen Array met daarin de vereiste veldnamen $attributen = array("gebruiker_naam","gebruiker_email"); /// $filename Bestand waarin de importtext tijdelijk opgeslagen wordt $filename = "importfile.txt"; // $img_map Directorie waar de plaatjes staan. $img_map = "http://192.168.100.99/importer/"; function draw_selectbox($veld, $selected = "") { global $attributen; echo "\n<select name=$veld onchange=\"checkselected();\">"; echo "<option value=\"\"></option>"; for ($i = 0; $i < sizeof($attributen); $i++) { echo "<option value=\"".$attributen[$i]."\">".$attributen[$i]."</option>"; } echo "</select>\n"; } if ($_FILES[importfile][size]) { @unlink($filename); if ($_FILES[importfile][size] || $_FILES[importfile][type] != "text/plain") { move_uploaded_file($_FILES[importfile][tmp_name],$filename); $file = fopen($filename,"r"); $fileinhoud = fread($file, filesize($filename)); if ($_POST[usertoken] == $_POST[valuetoken]) { echo "De karakters waarmee het script de gegevens moet kunnen onderscheiden zijn hetzelfde.<BR> Pas deze aan!"; } $content = explode(stripslashes($_POST[usertoken]),$fileinhoud); echo "Het bestand is succesvol geopend.<BR>"; echo "<form name=importer method=post> <input type=hidden name=usertoken value=\"$_POST[usertoken]\"> <input type=hidden name=valuetoken value=\"$_POST[valuetoken]\"> <table>"; for ($i = 0; $i < sizeof($attributen); $i++) { echo "<tr><td>".$attributen[$i]."</td><td>[img]".[/img]</td></tr>"; } echo "</table>"; echo "Er zijn ".sizeof($content). " gebruiker(s) gevonden in het bestand."; echo "<table border=1>\n"; $lengte = 0; for($i = 0; $i < sizeof($content); $i++) { $output .= "<TR>"; $blaat = explode(stripslashes($_POST[valuetoken]),$content[$i]); for($o = 0; $o < sizeof($blaat); $o++) { $output .= "<td> $blaat[$o] </td>";// } if ($lengte < sizeof($blaat)) { $lengte = sizeof($blaat); } $output .= "</TR>\n"; } echo "<Tr>"; for ($i = 0; $i < $lengte; $i++) { echo "<td>"; draw_selectbox($i); echo "</td>"; } echo "</tr>"; echo $lengte; echo $output; echo "</table> <input type=submit name=submitknop value=\"Importeren\" disabled=true></form>"; ?> <Script language="javascript"> function checkselected() { <? // PHP CODE for ($i = 0; $i < sizeof($attributen); $i++) { echo "this.document.$attributen[$i].src = 'leeg.gif';\n"; } // EINDE PHP CODE ?> for (var i = 0; i < this.document.importer.elements.length; i++) { <? for ($i = 0; $i < sizeof($attributen); $i++) {?> if (this.document.importer.elements[i].value == "<? echo $attributen[$i];?>") { waarde = this.document.importer.elements[i].value; if (this.document[waarde].src == '<? echo $img_map;?>leeg.gif') { this.document[waarde].src = 'goed.gif'; } else if (this.document[waarde].src == '<? echo $img_map;?>goed.gif') { // alert ('FOUT\\r\\n'+elements[i]].value+' is reeds gedefineerd!'); this.document[waarde].src = 'fout.gif'; } else if (this.document[waarde].src == '<? echo $img_map;?>fout.gif') { // } else { this.document[waarde].src = 'leeg.gif'; } } <? } ?> if (this.document.importer.elements[i].value == "") { //alert('leeg object :D'); } } waardecheck = 0; <? for ($i = 0; $i < sizeof($attributen); $i++) { echo "if (this.document.".$attributen[$i].".src != '".$img_map."goed.gif') { waardecheck = waardecheck -1; }"; } ?> if (waardecheck < 0) { this.document.importer.submitknop.disabled = true; } else { this.document.importer.submitknop.disabled = false; } } </Script> <? } else { echo "Geen bestand meegegeven of geen text bestand geupload.";// } } else if ($_POST[submitknop]) { $file = fopen($filename,"r"); $fileinhoud = fread($file, filesize($filename)); if ($_POST[usertoken] == $_POST[valuetoken]) { echo "De karakters waarmee het script de gegevens moet kunnen onderscheiden zijn hetzelfde.<BR> Pas deze aan!"; } $content = explode(stripslashes($_POST[usertoken]),$fileinhoud); // $content = explode("\n",$fileinhoud); echo "De geselecteerde items worden in de database gezet..<BR><BR>"; $blaat = 0; $tabellen_insert = ""; for ($i = 0; $i < sizeof($attributen); $i++) { if ($_POST[$i]) { $blaat++; $tabellen_insert .= $attributen[$i]; if ($blaat+1 <= sizeof($attributen)) { $tabellen_insert .= ", "; } //echo "<td><B>".$attributen[$i]."</B></td>"; } } $lengte = $blaat; for($i = 0; $i < sizeof($content); $i++) { $blaat2 = 0; $sql_values = ""; $blaat = explode(stripslashes($_POST[valuetoken]),$content[$i]); for($o = 0; $o < sizeof($blaat); $o++) { if ($_POST[$o]) { $blaat2++; $sql_values .= "'".addslashes($blaat[$o])."'"; if ($blaat2+1 <= $lengte) { $sql_values .= ", "; } } } $query = "INSERT INTO ".$tablenaam. " (".$tabellen_insert.") VALUES (".$sql_values.")"; mysql_query($query) or die("<BR><font color=red>Er is iets fout gegaan.<BR><BR>".mysql_error()."</font>"); } echo "Done...<BR> Er zijn <B>".sizeof($content)."</B> query's uitgevoerd"; } else { ?> <form enctype="multipart/form-data" method="post"> <Table> <tr><td>Alle gebruikers</td><td> <select name=usertoken> <option value=" ">op een nieuwe regel (enter)</option> <option value="|">gescheiden door teken |</option> <option value=";">gescheiden door teken ;</option> </select></td></tr> <tr><td>Per gebruiker gegevens </td><td> <select name=valuetoken> <option value=";">gescheiden door teken ;</option> <option value="|">gescheiden door teken |</option> <option value="||">gescheiden door teken ||</option> </select></td></tr> <tr><td>Bestand</td><td><input type=file name=importfile></td></tr> <tr><td> </td><Td><input type=submit></Td></tr> </table> </form> <? } ?> |
[ Voor 16% gewijzigd door dip op 15-12-2004 09:51 ]
It's scientifically known, that base improves the tase of cheezes!
ellenvandewal: Wat heb je zelf al geprobeerd? Ging er iets mis? Heb je zelf al gezocht naar mogelijkheden om dit op te lossen? Deze informatie mis ik in je topicstart. Het komt nu op mij over als "hoi, ik wil dit, doe het eens voor". Hier in Programming & Webscripting vragen we iets meer inzet.
Zie ook P&W FAQ - De "quickstart" zodat je de volgende keer een iets duidelijkere topicstart hebt. Je bent hier al meerdere malen op gewezen!
Zie ook P&W FAQ - De "quickstart" zodat je de volgende keer een iets duidelijkere topicstart hebt. Je bent hier al meerdere malen op gewezen!
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Dit topic is gesloten.
![]()