select - Selects from the database..
select(( [db:pointer,] tables:string, wantarray:true|false, single:boolean,count:integer, fields:string,error:variable, join:string, having:string, selectby:string, orderby:string, groupby:string, limit:string, args:string, uid:integer, page:integer, prefix:true|false, countperpage:integer);
This function is used to retreive elements from tables. This function cas be used as a callback in a loop or as a function.
This function returns an has array with thw following elements:
Note: In the followings examples, the _ between the { should be removed to make it work.
res={_{
a=sql("drop table IF EXISTS ? ;","sn_test1");
a=sql("create table sn_test1 (uid int, firstname varchar(255), lastname varchar(255");
for(i=1;i<30;++i) do
j = i % 5;
k = i % 3;
a=sql("insert into sn_test1 values('?', '?', '?');",i, "f" .+ j,"l" .+ k );
endfor
a=select(tables:"sn_test1",groupby:"firstname",fields:"firstname,count(*) as c", having:"count(*) = 5");
a.rows;
}}. return res=\[{"c":"5","firstname":"f0"}\].
res={_{
a=sql("drop table IF EXISTS ? ;","sn_test1");
a=sql("drop table IF EXISTS ? ;","sn_test2");
a=sql("create table sn_test1 (uid int, firstname varchar(255), lastname varchar(255");
a=sql("create table sn_test2 (uid int, uid_sn_test_1 int, firstname varchar(255), lastname varchar(255))");
for(i=1;i<3;++i) do
a=sql("insert into sn_test1 values('?', '?', '?');",i, "f" .+ i,"l" .+ i );
for(j=1;j<3;++j) do
a=sql("insert into sn_test2 values('?', '?', '?', '?');",i,j,"g" .+ i .+ j,"h" .+ i .+ j);
endfor
endfor
}}. return res=.
res={_{ select(tables:"sn_test1",page:5,limit:"abc"); }}. return .*Page and limit are mutually exclusive.*
res={_{ select(tables:"sn_test1",selectby:"uid = ?"); }}. return .*Missing args parameter.*
res={_{ a=select(tables:"sn_test1",selectby:"uid = '?'",noargs:true); a.nbrows}}. return res=0.
res={_{ a=select(tables:"sn_test1",prefix:true,fields:"uid"); a.rows[0]}}. return res={"sn_test1_uid":"1"}.
res={_{ select(); }}. return .*tables must be specify.*
res={_{ sql("select * from sbsusj"); }}. return .*Table 'v5.sbsusj' doesn't exist.*
res={_{ select(tables:"sbsusj"); }}. return .*Table 'v5.sbsusj' doesn't exist.*
res={_{ a=select(tables:"sbsusj"); a.error; a.sqlcode;}}. return res=true1.
res={_{ a=select(wantarray:true,tables:"sn_test1"); if ! a.error then a.rows; endif}}. return res=\[\["1","f1","l1"\],\["2","f2","l2"\]\].
res={_{ a=select(wantarray:true,tables:"sn_test1,sn_test2"); if ! a.error then a.nbrows; a.rows[0]; endif}}. return res=8\["1","f1","l1","1","1","g11","h11"\].
res={_{ a=select(tables:"sn_test1,sn_test2",selectby:"uid = '?'"); if ! a.error then a.nbrows; a.rows[0]; endif}}. return .*Missing args parameters.*
res={_{ a=select(wantarray:true,tables:"sn_test1,sn_test2",selectby:"sn_test1.uid = '?'",args:[1]); if ! a.error then a.nbrows; a.rows[0]; endif}}.],
q(res=4\["1","f1","l1","1","1","g11","h11"\].
res={_{ a=select(wantarray:true,tables:"sn_test1,sn_test2",selectby:"sn_test1.uid = '?' and sn_test2.uid = '?'",args:[1,2]); if ! a.error then a.nbrows; a.rows[0]; endif}}.],
q(res=2\["1","f1","l1","2","1","g21","h21"\].
res={_{ a=select(wantarray:true,tables:"sn_test1,sn_test2",uid:1); if ! a.error then a.nbrows; a.rows[0]; endif}}.],
q(res=4\["1","f1","l1","1","1","g11","h11"\].
res={_{ a=select(wantarray:true,tables:"sn_test1,sn_test2",uid:1,selectby:"sn_test2.uid = '?'", args:[1]);
if ! a.error then a.nbrows; a.rows[0]; endif}}.],
q(res=2\["1","f1","l1","1","1","g11","h11"\].
res={_{ a=select(wantarray:true,tables:"sn_test1",uid:1);
if ! a.error then a.nbrows; a.rows[0]; endif}}.],
q(res=1\["1","f1","l1"\].
res={_{ a=select(wantarray:true,fields:"firstname,lastname",tables:"sn_test1",uid:1);
if ! a.error then a.nbrows; a.rows[0]; endif}}.],
q(res=1\["f1","l1"\].
res={_{ a=select(wantarray:true,tables:"sn_test1",uid:1,join:"LEFT JOIN sn_test2 on sn_test1.uid = sn_test2.uid_sn_test_1");
if ! a.error then a.nbrows; a.rows[0]; else a.sqlerr; endif}}.],
q(res=2\["1","f1","l1","1","1","g11","h11"\].
res={_{ a=select(wantarray:true,tables:"sn_test1",fields:"uid",orderby:"uid asc");
if ! a.error then a.nbrows; a.rows; else a.sqlerr; endif}}.],
q(res=2\[\["1"\],\["2"\]\].
res={_{ a=select(wantarray:true,tables:"sn_test1",fields:"uid",orderby:"uid desc");
if ! a.error then a.nbrows; a.rows; else a.sqlerr; endif}}.],
q(res=2\[\["2"\],\["1"\]\].
res={_{ a=select(tables:"sn_test1",fields:"count(uid) as c",orderby:"uid desc");
if ! a.error then a.nbrows; a.rows; else a.sqlerr; endif}}.],
q(res=1\[{"c":"2"}\].
res={_{ a=select(page:1,tables:"sn_test1",fields:"count(uid) as c",orderby:"uid desc");
if ! a.error then a.nbrows; a.rows; else a.sqlerr; endif}}.],
q(res=1\[{"c":"2"}\].
res={_{
a=sql("drop table IF EXISTS ? ;","sn_test1");
a=sql("create table sn_test1 (uid int, firstname varchar(255), lastname varchar(255");
for(i=1;i<30;++i) do
a=sql("insert into sn_test1 values('?', '?', '?');",i, "f" .+ i % 5,"l" .+ i );
endfor
a=select(wantarray:true,page:2,tables:"sn_test1",fields:"uid",countperpage:4,orderby:"uid asc");
a.rows;
a=select(wantarray:true,count:29,page:2,tables:"sn_test1",fields:"uid",countperpage:4,orderby:"uid asc");
a.rows;
}}. return res=\[\["5"\],\["6"\],\["7"\],\["8"\]\]\[\["5"\],\["6"\],\["7"\],\["8"\]\].
res={_{
for i select(error:t,wantarray:true,page:2,tables:"ioijswjj",fields:"uid",countperpage:4,orderby:"uid asc") do
i;
endfor
t.errmsg;
}}. return res=.*Table 'v5.ioijswjj' doesn't exist.*
res={_{
for i select(error:t,wantarray:true,page:2,tables:"sn_test1",fields:"uid",countperpage:4,orderby:"uid asc") do
i.rows[0];
endfor
t.errmsg;
}}. return res=5678.
res={_{
for i select(error:t,page:1,tables:"sn_test1",fields:"uid",countperpage:4,orderby:"uid asc") do
i.rows;
if i.rows.uid == 2 then break endif
endfor
t.errmsg;
}}. return res={"uid":"1"}{"uid":"2"}.
res={_{
a=sql("drop table IF EXISTS ? ;","sn_test1");
a=sql("drop table IF EXISTS ? ;","sn_test2");
a=sql("create table sn_test1 (uid int, firstname varchar(255), lastname varchar(255");
a=sql("create table sn_test2 (uid int, uid_sn_test_1 int, firstname varchar(255), lastname varchar(255))");
}}. return res=.
res={_{
for(i=1;i<10;++i) do
a=sql("insert into sn_test1 values('?', '?', '?');",i, "f1","l1");
for(j=1;j<10;++j) do
a=sql("insert into sn_test2 values('?', '?', '?', '?');",i,j,"f11","l11");
endfor
endfor
a=sql(prefix:true,"select * from sn_test1,sn_test2 where sn_test1.uid = sn_test2.uid_sn_test_1"); a.nbrows;
a=sql("drop table IF EXISTS ? ;","sn_test1");
a=sql("drop table IF EXISTS ? ;","sn_test2");
}}. return res=81.
fait(q(res={_{a=select(page:1,tables:"wijdwoij");a;}}. return .*able 'v5.wijdwoij' doesn't exist.*
res={_{
a=sql("drop table IF EXISTS ? ;","sn_test2");
a=sql("create table sn_test2 (uid int NOT NULL AUTO_INCREMENT, sn_cdate DATETIME, sn_mdate DATETIME,sn_cuid INTEGER,sn_muid INTEGER,
firstname VARCHAR(255),
lastname VARCHAR(255),
email VARCHAR(255),
PRIMARY KEY (uid));");
arr = [ "Pierre", "Laplante"];
a=sql("insert into sn_test2 set firstname = '?', lastname='?', email='?';", arr, "laplante@sednove.com" );
a=select(single:true,tables:"sn_test2");
a.rows.email;
a.rows.firstname;
a=select(single:true,wantarray:true,tables:"sn_test2");
a.rows;
}}.) return res=laplante@sednove.comPierre\["1",null,null,null,null,"Pierre","Laplante","laplante@sednove.com"\].),{'asm' => "-a"});
Written by Pierre Laplante and Caroline Laplante, <laplante@sednove.com>
Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
1.0 2014-09-09 21:24:14 laplante@sednove.com