-
Notifications
You must be signed in to change notification settings - Fork 0
/
searchgene.php
37 lines (28 loc) · 1.01 KB
/
searchgene.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
<?php
include "common.php";
### Query database
#$q = getdef($_GET,'q','');
#$gene = $q['gene'];
$gene = getdef($_GET, 'gene', '');
#echo $gene;
if($gene!=''){
# $ps=pg_prepare($db, 'getgene','SELECT * FROM geneinfo WHERE to_tsvector(genesym || \' \' || geneid) @@ to_tsquery($1) LIMIT 15');
$ps=pg_prepare($db, 'getgene','SELECT * FROM (SELECT *, similarity(genesym,$1) as sim FROM geneinfo WHERE similarity(genesym,$1)>0.3 OR $1=geneid) as foo ORDER BY sim DESC LIMIT 20');
$rs=pg_execute($db, 'getgene', array($gene));
} else {
$ps=pg_prepare($db, 'getgene','SELECT *, -1 as sim FROM geneinfo LIMIT 10');
$rs=pg_execute($db, 'getgene', array());
}
### Fetch result, make JSON
$results=array();
while($line=pg_fetch_array($rs,null,PGSQL_ASSOC))
{
$results[]=array('geneid' => $line['geneid'], 'genesym' => $line['genesym'], 'sim' => $line['sim']);
}
pg_free_result($rs);
### Return result
header('filename="data.json"; ');
header('Content-Type: application/json; ');
echo json_encode($results);
include "end.php";
?>