ppl.
het volgende stukje code merged recordsets.
Stel het volgende:
Je heb de colums
ID
Leeftijd
Vaardigheid
Stel dat Vaardigheid een key is die linkt naar een vaardigheden tabel.
1 user (ID) kan dus meerdere vaardigheden hebben wat resulteert in (als iemand 3 vaardigheden heeft) 3 aparte records. Maar eigenlijk is het handiger als het gewoon 1 record is waarbij de Vaardigheden column gewoon comma separated is.
Met de volgende code wordt dit voor je gedaan.
Het werkt erg eenvoudig.
Zorg er alleen voor dat de column die je wilt mergen de Laaste in de SELECT is.
sample code:
ok hier volgt de echte code.
Laat me weten wat je er van vind.
het volgende stukje code merged recordsets.
Stel het volgende:
Je heb de colums
ID
Leeftijd
Vaardigheid
Stel dat Vaardigheid een key is die linkt naar een vaardigheden tabel.
1 user (ID) kan dus meerdere vaardigheden hebben wat resulteert in (als iemand 3 vaardigheden heeft) 3 aparte records. Maar eigenlijk is het handiger als het gewoon 1 record is waarbij de Vaardigheden column gewoon comma separated is.
Met de volgende code wordt dit voor je gedaan.
Het werkt erg eenvoudig.
Zorg er alleen voor dat de column die je wilt mergen de Laaste in de SELECT is.
sample code:
code:
1
2
3
4
5
6
7
| var container = new data(); // set de column waar je op wilt MATCHEN. In ons geval ID container.setPrimary(num); // set de column welke je wilt MERGEN container.setColumn(num); // in ons geval 3 (laatste in de select container.loadRecordset(rs); // load de recordset in het object returned T/F var stack = container.getStack(); // returned false of een array[field][item]; |
ok hier volgt de echte code.
code:
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
| <% @language=javascript %>
<%
// constuctor
function writeline(text) { Response.Write(text); }
function data() {
this.pool;
return this;
}
function data.prototype.loadContainer() {
try {
this.container = function(arr,oThis) {
this.pooldata = arr;
arr = null;
this.constructor.prototype.item = function(x) { return this.pooldata.getItem(x,oThis.pointer); }
this.constructor.prototype.length = function() { return oThis.column; }
this.constructor.prototype.moveNext = function() { oThis.pointer++; }
this.constructor.prototype.eof = function() { return (oThis.pointer == oThis.row)?true:false; }
return this;
}
return true;
}
catch(e) { return false;}
}
function data.prototype.setPrimary(nCol) { this.col = nCol; return nCol?true:false; }
function data.prototype.setColumn(nNum) { this.target = (nNum-1); return nNum?true:false;}
function data.prototype.loadRecordset(rs) {
if (rs.state != 1) { return false; }
// convert all
var p = rs.getRows();
this.column = (p.ubound(1)+1);
this.row = (p.ubound(2)+1);
var eThis = this;
if (!this.createStack(this.row)) { return false;}
if (!this.loadContainer()) { return false;}
this.pool = new this.container(p,eThis);
this.pointer = 0;
return true;
}
function data.prototype.createStack(amount) {
try {
this.stack = [];
for (x=0;x<(amount);x++) {
this.stack[x] = [];
}
return true;
}
catch(e) { return false;}
}
function data.prototype.getStack() {
stack = [[],[],[],[],[],[]];
var lang = [];
var isNew = true;
var y,z = 0;
while(!this.pool.eof()) {
if (y == parseInt(this.pool.item(this.col))) { isNew = false; }
else { isNew = true; }
if (isNew) {
if (typeof(lang[lang.length -1]) != 'undefined') {
stack[this.target][stack[this.target].length] = lang[lang.length -1];
}
lang[lang.length] = [];
lang[lang.length -1][lang[lang.length -1].length] = this.pool.item(this.target);
}
if (!isNew) {
lang[lang.length -1][lang[lang.length -1].length] = this.pool.item(this.target);
}
for(var x=0;x<( this.pool.length() -1 );x++) {
if (isNew) {
stack[x][stack[x].length] = this.pool.item(x);
}
}
y = parseInt(this.pool.item(this.col));
this.pool.moveNext();
}
return stack?stack:false;
}
%> |
Laat me weten wat je er van vind.
[ Voor 3% gewijzigd door Verwijderd op 16-06-2016 14:10 ]