1

私は以下のようなテーブルを持っています:

ターゲット:

target_id | territory_id | emp_id_tar | target_week            | target |
15        | 22           | 61         | 2013-10-20/2013-10-26  | 50000  |
17        | 22           | 63         | 2013-10-20/2013-10-26  | 2000   |
18        | 22           | 64         | 2013-10-20/2013-10-26  | 150000 |

ご覧のとおり、target_week 列があり、従業員はこれらの日数でその量を達成する必要があります。

今、私は以下のクエリを試しました:

SELECT * 
FROM targets
WHERE emp_id_tar =61
AND MONTH( SUBSTRING_INDEX( target_week,  '/', 1 ) ) = MONTH( CURRENT_DATE( ) ) 
AND MONTH( SUBSTRING_INDEX( target_week,  '/', -1 ) ) = MONTH( CURRENT_DATE( ) ) 

特定の従業員の特定の月のすべての目標金額を取得します。上記により、phpMyAdmin と mySQL コンソールに出力が表示されます。しかし、php コードで使用すると、以下のようなエラーが表示されます。

( ! ) Warning: Division by zero in C:\wamp\www\kurl-on-fe\rest\init.php on line 75

PHPコードは以下にあり、コメントに75行目を表示しました。

$q = $this->connection->prepare('SELECT * FROM targets WHERE emp_id_tar =61 AND MONTH( SUBSTRING_INDEX( target_week,  '/', 1 ) ) = MONTH( CURRENT_DATE( ) ) AND MONTH( SUBSTRING_INDEX( target_week,  '/', -1 ) ) = MONTH( CURRENT_DATE( ) )');

// above line is line number 75
$bo = 61;
$q->bind_param('i', $bo);
$q->execute();
$res = $q->get_result();
$temp = array();
while($row = $res->fetch_assoc()) {
    $temp[] = $row;
}
return json_encode($temp);

私は本当に何がどこで間違っているのか混乱していますか?この問題から抜け出すのを手伝ってください。2013-10-20/2013-10-26もう 1 つは、この構造を週の開始と終了に使用していることです。そこでsubstring_index()、メソッドを使用して日付を個別に取得しました。

4

2 に答える 2

1

これを試して

$q = $this->connection->prepare("SELECT * FROM targets 
WHERE emp_id_tar =61 AND MONTH( SUBSTRING_INDEX( target_week,  '/', 1 ) ) = MONTH( CURRENT_DATE( ) ) AND MONTH( SUBSTRING_INDEX( target_week,  '/', -1 ) ) = MONTH( CURRENT_DATE( ) )");
于 2013-10-28T06:45:43.403 に答える