「.」でANDを接続する。

異なるテーブル=異なるテーブル、同じテーブルの条件複数、どちらでも使用可能


$c = new Criteria;

$c->addJoin(Table1Peer::TEST_ID, Table2Peer::TEST_ID .
' AND ' . Table1Peer::USER_ID . ' = ' . Table2Peer::USER_ID, Criteria::LEFT_JOIN);


違う方法で下記もあるっぽいが試してないので、なんともなんとも。

参考サイト「http://www.centsys.jp/service/technical_information/symfony/detabase/20080423.html

$strSubSql = " product_mst.site_id = series_trn.site_id ";
$objCriteria->addAnd(ProductMstPeer::SITE_ID, $strSubSql, Criteria::CUSTOM);


--------------------------

symfonyと中々仲良くなれません・・・どうすれば心のドアをぶっこわせマスカ?

環境変数の設定の仕方
オラクルでクライアント側から接続するときは環境変数の設定が必要
コントロールパネル>システム>詳細設定タブ>環境変数
>システム環境変数>新規>「NLS_LANG」
例:LINUXの場合

■UTF8
Japanese_Japan.AL32UTF8

■SJIS
Japanese_Japan.JA16SJIS

■EUC
Japanese_Japan.JA16EUC


---------------------------------


昨日、誕生日でした。

新しい自分、新しい現場でまたどんぶらこと、がんばります。

目標はがんばらない。

矛盾しとんね・・

$pdf->StartTransform(); //グラフィック変換モードを開始

$pdf->Rotate(-135, $x, $y);//画像を-135°反時計回りに傾ける(時計まわりで135°)

※Rotate $angle:回転角度(反時計回り)$X:回転円の中心点のX座標$y:回転円の中心点のY座標

$pdf->ImageEps($file, $x, $y, $w, $h, '', true, '', '', 0);

※AIやEPSなどのベクター画像の描画

$pdf->ImageEps($file, $x, $y, $w, $h, $link,$useBoundingBox, $align, $palign, $border);

$file:画像ファイル名

$x:領域左上のX座標

$y:領域左上のY座標

$w:領域幅(指定しない場合、自動計算される)

$h:領域の高さ(指定しない場合、自動計算される)

$link:リンク先のURLもしくはAddLink()で作成したリンク識別子

$useBoundingBox:PS/EPSファイル内のBoudingBoxパラメータをもとに配置する場合はTrue(規定)、BoundingBoxパラメータを使わない場合false

$align:画像挿入後に移動するカーソルの垂直方向の位置、以下いずれか

・T:右上(RTLの場合は左上)、M:右中(RTLの場合は左中)、B:右下(RTLの場合は左下)、N:次の行

$palign:画像を現在の行のどこに配置するか、以下いずれか

・L:左端、C:中央、R:右端、'':から文字:左端(RTLの場合は右端)

$border:境界線の描画方法を指定、以下いずれか

・0:境界線なし(規定)、1:枠で囲む

または、以下の組み合わせで境界線を指定する

・L:左、T:上、R:右、B:下

$pdf->StopTransform(); //グラフィック変換モードを終了

$pdf->StartTransform(); //グラフィック変換モードを開始

$pdf->StopTransform(); //グラフィック変換モードを終了

を使わずにRotateを使用すると次の図形からが大幅にずれる。

よく読まなかった自分が悪いが、マニュアルページよ…

「関連」で記載するんじゃなくて「必須」で記載して欲しかったよ…

この原因不明の図形がずれる現象で何時間費やしたことやら?

とりあえず、私の週末返せ(`Д´)

※smarty未使用の場合

【PHP】

require_once('xajax.inc.php');


//******************************************
//xajax
//******************************************
function testMo2(){
$objResponse = new xajaxResponse();
global $db;
//登録処理がされているか検索 -------------------- start
$test_array = Array();
$test_sql = "select test from test_m where test_key = 3";
$test_stmt = $db->prepare($test_sql);
$test_stmt->execute();
while($row = $test_stmt->fetch(PDO::FETCH_ASSOC)){
$test_array[] = $row;
}

//登録処理がされているか検索 -------------------- end

if(count($test_array) > 0){

//登録処理完了時
$objResponse->addScriptCall( "rtnMo" );//「rtnMo」のjavascriptのfunction実行
$objResponse->addAssign("test","value",1);
}else{

 //登録処理未完了時
$objResponse->addAssign("test","value",0);
}
return $objResponse;
}

$xajax = new xajax(); // xajax コンストラクタの生成
$xajax->registerFunction( "testMo2" ); //Ajaxの関数名
$xajax->processRequests(); // リクエストの発行


【HTML】

■javascript

//ボタン押下時の処理
function testMo(){
var test = document.testForm.test.value;
if(test != 1){
IntervarID = setInterval('shori()',1000);//1秒毎に繰り返し処理
}
}
//処理が終わった時の処理
function rtnMo(){
clearInterval(IntervarID);//「IntervarID」というsetIntervalを停止
document.getElementById("msg").innerHTML = "処理が終わりました。";
}
//繰り返し処理
function shori(){
xajax_testMo2();//ajaxのfunction実行
}


■HTML

<input type="hidden" id="test" name="test" value="0"/><!-- 条件分岐用hidden -->


<span id='msg' style='font-weight: bold;color:blue'></span><!-- メッセージ表示用span -->


<?php

//xajax.js が存在する場所を指定
echo $xajax->getJavascript( '../../js' )
?>



*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Ajaxを使わずjavascriptだけのテスト用に作ったプログラム

■javascript

//ボタン押下時の処理
function testMo(){
var test = document.testForm.test.value;
if(test != '1'){
IntervarID = setInterval('shori()',1000);//1秒毎に繰り返し処理
}
}
//処理が終わった時の処理
function rtnMo(){
clearInterval(IntervarID);//「IntervarID」というsetIntervalを停止
document.getElementById("msg").innerHTML = "処理が終わりました。";
}
//繰り返し処理
function shori(){
var cnt = document.testForm.cnt.value;
if(cnt == 0){//ボタン押下時1回だけ実行
timeID = setTimeout('mmm()',15000);//15秒後に「mmm」functionを実行
}
cnt++;//カウントアップ
document.testForm.cnt.value = cnt;//javascriptでは値を保持できない為hiddenに格納
}
//テスト用値をセットする処理
function mmm(){
document.testForm.test.value = '1';//条件分岐用のhiddenを書き換える
clearTimeout(timeID); //「timeID」というsetTimeoutを停止
rtnMo(); //繰り返し処理を終わらせる&メッセージを表示させるfunction実行
}


■HTML

<input type="hidden" id="test" name="test" value="0"/><!-- 条件分岐用hidden -->

<input type="hidden" id="cnt" name="cnt" value="0"/><!-- 処理回数カウント用hidden -->


<span id='msg' style='font-weight: bold;color:blue'></span><!-- メッセージ表示用span -->





処理に時間のかかる一覧処理やCSVのインポート等で使えそうなプログラム。

自分の思考パターンが少ないのか、「こうしたい」と言われてできた。流石大先輩。

こうすればできるんじゃないか、そう考えられる幅広い思考回路が欲しいな…

PHP Warning: Division by zero


何をやっても出てくるが、どこがダメなのかわからんので調べてみた。

0で割ると出てくるらしい。


例】

$test1 = 10;

$test2 = 0;

$test3 = $test1 / $test2;


上記の場合に出る。

プログラム的には0で割るのはダメらしい。

//検索日
$Date = '20110124';


//検索期間取得(月単位)
$year = substr($Date,0,4);
$month = substr($Date,4,2);
$last_day = date("t", mktime(0, 0, 0, $month, 1, $year));
$S_Date = $year.$month.'01';
$E_Date = $year.$month.$last_day;


"t"は指定した月の日数。


//前月最終日を取得
$last_month = date("Y/m/d",strtotime("-1 month" ,strtotime('2011/01/24')));
$lyear = substr($last_month,0,4);
$lmonth = substr($last_month,4,2);
$lday = date("t", mktime(0, 0, 0, $lmonth, 1, $lyear));
$L_Date = $lyear.$lmonth.$lday;


document.getElementById("test").innerText

document.getElementById("optionのID名").innerText


【optionの内容変更】

document.getElementById("test").innerText = "テスト項目1";



思い出的なあれ。どっかで思い出したら使えるかもな期待を抱いて書きなぐるぜいえぃ(`∀´*)

var test_value = selTest.options[selTest.selectedIndex].value;//これと違う値であればalert。これはプルダウン
for(i=1; i<=dtlCnt.value; i++){//一覧の全件でループ
if(elements["txtTest" + i].value != ""){//入力欄に値がある時のみチェック
if(elements["hidTestKey_" + i].value != test_value){//↑と値が違うかチェック
alert("内容が" + document.getElementById("test").innerText + "のあははんなデータを選択してください。");
return false;//返品。なおしてからまてキテネ☆な意。
}
}
}