#php #datatables #jquery-datatables-editor
#php #таблицы данных #jquery-datatables-editor
Вопрос:
Я хочу обрезать результаты из 2 таблиц и сопоставить их. В настоящее время я использую это в скрипте PDO и работает нормально. Я пытаюсь преобразовать все мои таблицы в редактор таблиц данных, но сталкиваюсь с этой проблемой.
->leftJoin( 'FIND_IN_SET(SUBSTRING(disc_rq_activations.Related_SN,1, 13), SUBSTRING(disc_Activations.Device_ID, 1,13))' )
Вышеуказанное не выдает ошибок, но не загружает результаты.
вот мой обычный php-скрипт
FROM disc_rq_activations RQ
LEFT JOIN
disc_Activations VZ
ON FIND_IN_SET(SUBSTRING(RQ.Related_SN,1, 13), SUBSTRING(VZ.Device_ID, 1,13))
#ON IF(length(Related_SN) = 15,FIND_IN_SET(LEFT(Related_SN, length(Related_SN) - 1), VZ.Device_ID),Related_SN)
WHERE
VZ.Device_ID IS NULL
AND RQ.District = "'.$region.'"
AND STR_TO_DATE(RQ.Sold_On, "%b %e, %Y %l:%i %p") BETWEEN "'.$mindate.'" AND "'.$maxdate.'"
AND RQ.Product_Name != "ISPU Activation"
AND RQ.Product_Name != "ISPU New Act"
GROUP BY RQ.Tracking_, RQ.Related_SN
Вышесказанное работает просто отлично.
Как я могу реализовать это в таблицах данных?
Полный скрипт таблиц данных
use PHPMailerPHPMailerPHPMailer;
require '../../../vendor/autoload.php';
include( "lib/DataTables.php" );
use
DataTablesEditor,
DataTablesEditorField,
DataTablesEditorFormat,
DataTablesEditorMjoin,
DataTablesEditorOptions,
DataTablesEditorUpload,
DataTablesEditorValidate,
DataTablesEditorValidateOptions;
Editor::inst( $db, 'disc_rq_activations' )
->fields(
Field::inst( 'disc_rq_activations.ID' ),
Field::inst( 'disc_rq_activations.Invoice_' ),
Field::inst( 'disc_rq_activations.Tracking_' ),
Field::inst( 'disc_rq_activations.Qty' ),
Field::inst( 'disc_rq_activations.Product_SKU' ),
Field::inst( 'disc_rq_activations.Product_Name' ),
Field::inst( 'disc_rq_activations.Unit_Rebate' ),
Field::inst( 'disc_rq_activations.Related_Product' ),
Field::inst( 'disc_rq_activations.Related_SKU' ),
Field::inst( 'disc_rq_activations.Related_SN' ),
Field::inst( 'disc_rq_activations.Related_Cost' ),
Field::inst( 'disc_rq_activations.Related_Price' ),
Field::inst( 'disc_rq_activations.Rate_Plan' ),
Field::inst( 'disc_rq_activations.Customer' ),
Field::inst( 'disc_rq_activations.Sales_Person' ),
Field::inst( 'disc_rq_activations.Sales_Person_ID' ),
Field::inst( 'disc_rq_activations.Sold_On' ),
Field::inst( 'disc_rq_activations.Invoiced_At' ),
Field::inst( 'disc_rq_activations.Original_Invoice' ),
Field::inst( 'disc_rq_activations.Original_Sales_Date' ),
Field::inst( 'disc_rq_activations.Contract_' ),
Field::inst( 'disc_rq_activations.SOC_Code' ),
Field::inst( 'disc_rq_activations.SOC_Code_2' ),
Field::inst( 'disc_rq_activations.Extra_Field' ),
Field::inst( 'disc_rq_activations.Port_Number' ),
Field::inst( 'disc_rq_activations.Region' ),
Field::inst( 'disc_rq_activations.District' ),
Field::inst( 'disc_rq_activations.Vendor_Account_Name' ),
Field::inst( 'daily_notes.note' ),
Field::inst( 'daily_notes.note_id' ),
)
// Need to convert this as it is showing all as null because one column is 18 digits and the other is 16 digits for the most part. Some IDs are 13 digits.
->leftJoin( 'disc_Activations', 'disc_rq_activations.Related_SN', '=', 'disc_Activations.Device_ID' )
->leftJoin( 'daily_notes', 'daily_notes.note_id', '=', 'disc_rq_activations.ID' )
->where('disc_Activations.Device_ID', null)
->debug( true )
->process( $_POST )
->json();