Datatables Individual column searching (select inputs) Reloading After ajax - datatable

I have a Data table populated using ajax request then the Individual column searching (select inputs) api is called and i am able to use the search functionality,But on new data get appended to table the select feilds are not getting reinitilised and the select feild options still shows the old values

if you update by javascript function then try this
function updateTable(){
//your updation code
var table = $("#dataTable").DataTable(); // get api instance
// load data using api
table.ajax.url(ajax_source).load();
};

Related

Laravel Paginate with OrderBy

When querying a product code table I have the following
$results = Stock::orderBy('stk_physical', 'desc')->paginate(10);
This works fine on the initial load of 10 records but when a subsequent call is made for page 2 I get the following error
Incorrect syntax near 'offset'. (SQL: select * from [stock_records] order by [stk_physical] desc offset 10 rows fetch next 10 rows only)
I'm using Laravel 8.0 with SQL
You should append query string to the pagination like this
$results = Stock::orderBy('stk_physical', 'desc')->paginate(10);
$results->appends(["order_by" => "stk_physical"]);
This will append the &order_by=stk_physical to each link in the view and you can also use withQueryString() to take in consideration query string in future pagination like this
$results = Stock::orderBy('stk_physical', 'desc')->paginate(10)->withQueryString();

Laravel eloquent filter from a value of json column

I've taken over a project where they stored the date_start value in a JSON column.
(e.g, id, name, some_column, meta)
where in meta has a value of { propert1, property2, property3, "date_start": "2021-09-26", and so on...}
Now, in the front-end, I have to make a search feature, where I select a date.
Now in the back-end, since the value of date_start has been stored in a json column, I'd assume that I need to fetch all records first, loop through them and then decode the meta field.
Isn't it OVERALL bad? Or is there any other way?
Modern versions of database often support JSON column types. These json columns can be queried using SQL.
preferences column in users table:
{"dining": {"meal": "salad", "time": "20:00"}}
Query:
$users = DB::table('users')
->where('preferences->dining->meal', 'salad')
->get();
Checkout the Laravel docs on JSON Where clauses:

Parameters in Laravel Eloquent pagination

$articles = Article::paginate(10, ['*'], 'pag');
What does the second parameter [*] above do?
The first parameters is the number of resources to be displayed by page.
The third parameter is the name of the query that will appear in the URL (i.e, "pag?=3").
What about "[*]"? I've used it for a long time without knowing what it does.
Don't tell me to search in Laravel Docs because I already did this and didn't find anything useful.
2nd parameter is select() method from Illuminate\Database\Eloquent\Builder which means select * from table ... limit 15.
You can specify which columns you want select from database.
For exaple $users->paginate(10, ['id', 'name']); -> select id, name from users ... limit 10
FYI: ['*'] is not fully qualified!
If you are using join in your select, it might be a problem if the columns with the same name are present in both tables. For example uuid, etc ...
In this case you should specify table name in select: ['table_name.*'] -> select table_name.* from table_name ... limit 15

SQL query parsing Issue with joining a table with a view for apex tabular form

I am using the following SQL query as a basis for an Apex tabular form:
SELECT G."INDICATOR_NAME", V.INDICATOR_TYPE, V.INDICATOR_PERIOD, V.INDICATOR_VALUE, V.METRIC_USER, V."METRIC_USER_GROUPID"
FROM STG_VALUES V, "#OWNER#"."GETMETRICGROUPID_V" G WHERE V.INDICATOR_NAME = G."INDICATOR_NAME" AND V.METRIC_USER_GROUPID = G."METRIC_USER_GROUP_ID"
and V.INDICATOR_PERIOD BETWEEN TO_DATE(TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE,'MM'),-36), 'MM/DD/YYYY'), 'MM/DD/YYYY') AND TO_DATE(TO_CHAR(SYSDATE,'MM/DD/YYYY'),'MM/DD/YYYY')
Here I'm joining a table (STG_VALUES) with a view (GETMETRICGROUUPID_V)
Here's the script for the GETMETRICGROUPID_V:
CREATE OR REPLACE FORCE VIEW STG.GETMETRICGROUPID_V
(
INDICATOR_NAME,
METRIC_USER_GROUP_ID
)
AS
SELECT INDICATOR_NAME, METRIC_USER_GROUP_ID
FROM STG_MST_USER_ASSIGNED_METRICS
WHERE METRIC_USER = NVL (v ('APP_USER'), USER)
OR METRIC_USER = LOWER (NVL (v ('APP_USER'), USER));
Here's my issue:
When I ran the above SQL Query in the Apex SQL Commands area, I got the
correct results. But when I used the same SQL Query inside the Apex tabular
form, I received the following error message:
failed to parse SQL query:
ORA-01403: no data found
It looks like Apex has issues joining a table with a view when used as a basis for the tabular form. Any thoughts on this ? I've searched the Internet for
answers/solutions and could not find any.
olecramon74
ORA-01403:no data found comes when the Select query returns no result in a PL/SQL code or function. Check the output of the v ('APP_USER') function in the query, it should be returning no result when you are running the query from APEX

Like Operator is not working in oracle view

I have created a view in oracle. Now i would like to fetch data from that view. So i have written a SQL Query. But the query is not working for not having a specific condition. But if I give that condition the query executes. But the problem is not occurring if i joined the same number of tables (that were used to create view) instead of using view. In the following I am giving the oracle query.
SELECT *
FROM "920_search_report"
WHERE lm_culture = '7aacb509-271d-4aca-e040-e00adea40aae'
AND hand_person_info_guid = 'eebd4257-7856-4c6e-b6b8-9b886e89e397'
AND ( Lower(handicap_type) LIKE Lower('%DQ871J%')
OR Lower(skskodenr) LIKE Lower('%DQ871J%') );
The above query executes and returns one record but if I omit or comment the third line then the query does not return any records, but it should return one or two. the query is given below:
SELECT *
FROM "920_search_report"
WHERE lm_culture = '7aacb509-271d-4aca-e040-e00adea40aae'
--AND HAND_PERSON_INFO_GUID='eebd4257-7856-4c6e-b6b8-9b886e89e397'
AND ( Lower(handicap_type) LIKE Lower('%DQ871J%')
OR Lower(skskodenr) LIKE Lower('%DQ871J%') );
Can anyone help me to solve the problem.

Resources