44 lines
1.6 KiB
PHP
44 lines
1.6 KiB
PHP
|
<?php
|
||
|
|
||
|
function lookup_user($query=false, $order=false, $fields=false, $where=false){
|
||
|
$err = "";
|
||
|
$searchresult = false;
|
||
|
if ($order !== false) $order = "ORDER BY $order";
|
||
|
if ($fields === false) $fields = "acctid,login,name,level,laston,loggedin,gentimecount,gentime,lastip,uniqueid,emailaddress";
|
||
|
$sql = "SELECT $fields FROM " . db_prefix("accounts");
|
||
|
|
||
|
if ($query != "") {
|
||
|
// First try for an exact match on username or login
|
||
|
if ($where === false)
|
||
|
$sql_where = "WHERE login LIKE '$query' OR name LIKE '$query' OR acctid = 'query' OR emailaddress LIKE '$query' OR lastip LIKE '$query' OR uniqueid LIKE '$query'";
|
||
|
else
|
||
|
$sql_where = "WHERE $where";
|
||
|
$searchresult = db_query($sql . " $sql_where $order LIMIT 2");
|
||
|
}
|
||
|
|
||
|
if ($query !== false || $searchresult) {
|
||
|
if (db_num_rows($searchresult) != 1) {
|
||
|
// we didn't find an exact match
|
||
|
$name_query = "%";
|
||
|
for ($x=0;$x<strlen($query);$x++){
|
||
|
$name_query .= substr($query,$x,1)."%";
|
||
|
}
|
||
|
if ($where === false)
|
||
|
$sql_where="WHERE login LIKE '%$query%' OR acctid LIKE '%$query%' OR name LIKE '%$name_query%' OR emailaddress LIKE '%$query%' OR lastip LIKE '%$query%' OR uniqueid LIKE '%$query%' OR gentimecount LIKE '%$query%' OR level LIKE '%$query%'";
|
||
|
else
|
||
|
$sql_where = "WHERE $where";
|
||
|
|
||
|
$searchresult = db_query($sql . " $sql_where $order LIMIT 101");
|
||
|
}
|
||
|
if (db_num_rows($searchresult)<=0){
|
||
|
$err = "`\$No results found`0";
|
||
|
}elseif (db_num_rows($searchresult)>100){
|
||
|
$err = "`\$Too many results found, narrow your search please.`0";
|
||
|
}else{
|
||
|
// Everything is good
|
||
|
}
|
||
|
}
|
||
|
return array($searchresult, $err);
|
||
|
}
|
||
|
?>
|