Как вставить одну и ту же переменную datetime в разные таблицы?

Я хотел бы хранить datetime переменная в разные таблицы с помощью двух функций. я использую constraint в CI но все равно не повезло.

Это ограничение:

$date_now = date("ymdhis");
define('TODAY_DATE',$date_now);

Это функции:

public function save_activity_m(){
foreach($details as $rows){

$stock_in          = $rows['product']."_".TODAY_DATE;
$data['STOCK_IN']  = ($rows['product'] == "") ? NULL : $stock_in;

$this->MProduct->ins_product_m($data);
}
echo "<script type='text/javascript'>alert('New stock arrived');window.top.location.reload();</script>";
}

public function save_notifikasi(){

$lampiran = $this->input->post('lamp');

$data['note_date'] = $lampiran."_".TODAY_DATE;
$data['note']       = $this->input->post('isi');

$this->MProduct->ins_notif($data);
echo "<script type='text/javascript'>alert('You have a notification');</script>";}

Как сделать так, чтобы дата и время были одинаковыми для $data['STOCK_IN'] а также $data['note_date']?

1

Решение

Поскольку сеть не имеет состояния, никакие данные в переменной PHP не будут храниться с одной страницы (или загружаться) на другую; по сути, вы загружаете приложение с нуля каждый раз.

Единственный способ обойти это — использовать какое-то полупостоянное хранилище, такое как cookie или переменная сеанса (или постоянное хранилище, такое как база данных) — установка constantнапример, define('TODAY_DATE',$date_now); только сделает эти данные постоянными для ток выполнение сценария (ов).

Это базовый пример использования хранилища сессии ($_SESSION):

<?php

// crank up the session
// you may well have one running already,
// in which case ignore this
session_start();

// store the execution time for this script
// as a session variable if it's NOT already set
// i.e. don't overwrite it
if(empty($_SESSION['time_now'])) $_SESSION['time_now'] = date("ymdhis");public function save_activity_m() {
foreach($details as $rows) {
$stock_in = $rows['product'] . "_" . $_SESSION['time_now'];
$data['STOCK_IN'] = ($rows['product'] == "") ? NULL : $stock_in;
$this->MProduct->ins_product_m($data);
}

echo "<script type='text/javascript'>alert('New stock arrived');window.top.location.reload();</script>";
}

/**
* Assuming this is the last thing you want to
* do with 'time_now' you should unset it here
*/
public function save_notifikasi() {
$lampiran = $this->input->post('lamp');
$data['note_date'] = $lampiran . "_" . $_SESSION['time_now'];
$data['note'] = $this->input->post('isi');
$this->MProduct->ins_notif($data);

// since we're done with the 'time_now' session
// variable we need to unset it...
unset($_SESSION['time_now']);

echo "<script type='text/javascript'>alert('You have a notification');</script>";
}

// just to be on the safe side unset the 'time_now' session var
// if it's older than 1 minute - otherwise future calls to this
// script, by the same user, during the same session will use
// the stored value from $_SESSION['time_now']
if(isset($_SESSION['time_now'])) {
$sessionTime = DateTime::createFromFormat('ymdhis', $_SESSION['time_now']);
$oneMinuteAgoTime = new DateTime('-1 minute');

if($sessionTime < $oneMinuteAgoTime) {
unset($_SESSION['time_now']);
}
}

Предостережение заключается в том, что, поскольку вы сохранили время в переменной сеанса, если вы не обновите или не сбросите его, оно всегда будет там (для текущего сеанса) — поэтому, если пользователь снова запустит скрипт, он просто будет использовать сохраненное время от сеанса.

Я положил в пару unset() звонки, чтобы попытаться обойти это.

0

Другие решения

Увидеть PHP: определить. Это константа, и она должна иметь одинаковое значение, если две функции выполняются в одно и то же время, когда выполняется скрипт.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector