Closed pipiscrew closed 7 years ago
Using YaLinqo's where-queries on database tables results in wasted resources. Filtering on SQL side is much much faster than tranfering the whole table into a huge PHP array and filtering using PHP code. If you can afford wasting resources, it's fine, but usually it's way too much. So if you can perform a query fully in SQL, you should do so.
YaLinqo should be used when SQL isn't available (e.g. results from simple web services), or the logic is too complex for SQL (and even then as much logic as possible should be performed in SQL).
In the modern world, I see no reason to not use Composer. Sure, you can include every single file, but even if you don't like Composer, you can use a tiny one-line PSR-0 compliant autoloader instead which will make all the work for you.
spl_autoload_register(function($c){@include preg_replace('#\\\|_(?!.+\\\)#','/',$c).'.php';});
The function in this gist is much simpler than YaLinqo's. Its only benefit is simpler syntax when working with array keys.
hi @Athari
1-correct. The current situation is any query made in dbase the response takes ~2min (because is this dbase falling too many users.). As a result, I take all the needed records with a query then separate by YaLinqo :)
2- :) thanks I will try it.
3-ofc
greets!
hi again,
found a complete example for spl_autoload_register
// Add the appropiate extra include paths here
$includePaths = array(
__DIR__."/../vendor/",
__DIR__."/../modules/"
);
// Add the above paths to the global include path
set_include_path(implode(PATH_SEPARATOR, $includePaths));
// Register the psr-0 autoloader for ease of use
spl_autoload_register(function($c){@include preg_replace('#\\\|_(?!.+\\\)#','/',$c).'.php';});
the need :
using the following while loop on where line, the variable $startdate is Undefined variable...
Any tip?
$startdate = strtotime($dtp_start." UTC");
$enddate = strtotime($dtp_end." UTC");
while($startdate < $enddate) {
$result4 = from($rows)
->where(function ($x) {
return strtotime($x['CLOSE_DATE']) < strtotime('+8 days', $startdate) && $x['OWWNER']=='costas'; })
->toArray();
$startdate = strtotime('+7 days', $startdate);
}
Your anonymous function lacks use
statement:
->where(function ($x) use ($startdate) { ...
hi there,
Im using it also to 'query' date/datetime field, in example an array from PDO MySQL, works flawless... :) not optimized the manual dates (2017-02-12/2017-02-15) should be stored on vars, out of the loop.
and also advise that can be used without composer :
for groupby - check also - https://gist.github.com/mcaskill/baaee44487653e1afc0d
thanks for your time!