電子書籍の厳選無料作品が豊富!

いつもお世話になっております。
ODBCサーバー:IBM DB2(UDB)なのですが、下記コードを実行しても
件数が表示されず取得できませんでした。
何方か上記サーバーで件数を取得する方法をご存知でしたら、ご教授お願いいたします。(表示データ件数のコントロールをしたいのです)

$con2 = odbc_connect($ODBCDSN2, $DSNUSER2, $DSNPASS2);
$sql2 = "SELECT Count(*) AS cnt FROM tabl1";
$rst2 = odbc_exec($con2, $sql2);
$col2 = odbc_fetch_array($rst2);
$tcnt = $col2[cnt];
print "tcnt=";
print $tcnt;

上記コードを、ODBC MySQLで実行すると件数が表示されますのでIBM DB2(UDB)固有の
状況だと思うのですが・・・どうしたらいいのか解りません。

A 回答 (4件)

$sql2 = "SELECT Count(*) AS cnt FROM tabl1";



Conut(*)の*が抽象しすぎているのでは?
    • good
    • 0
この回答へのお礼

ArukuMailさん、早速のご回答ありがとうございました。
Conut(*)の*を実際の項目名を指定して実行しましたが、
結果は同じでした。エラーも出ないので不思議です。
ODBCサーバー:IBM DB2(UDB)でサポートされていない関数の様な気がします。このへんの情報サイトをご存知でしたら教えて頂けますか?

お礼日時:2006/08/03 16:05

おっと!


今思い出しましたけど、SQLで
特定の数だけをリストアップするのは標準でできたと思います。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。
配列表示とそのページング処理をしたかったのですが、
もっと基礎勉強をします。

お礼日時:2006/08/06 02:38

だいたい、代替関数があります


無いマイナーなDBなら

こちかがカウントして
規定値にたっしたら終わるくらいしかないです。
    • good
    • 0

おくれましたすみません



COUNT 自体DB2でもOKみたい。<ってかこれってSQLには標準ですな

ッてことはSQLの構文がいけないのでしょう

たとえば閉めを;でないだめとかありますから
    • good
    • 0
この回答へのお礼

済みません、お手数お掛けしました。
print $tcnt; は何も表示しませんが、
print_r($col2); ですと
Array ( [CNT2] => 12 ) と件数が表示できました。
ありがとうございました。
***もう1つ教えて頂けませんか?*********
・検索サイトなどでも良くある、"次ページ"とか"次の10件"を表示するというデータ表示の制御方法なのですが、LIMIT関数がないDBでは
どのようなプログラミングになるのでしょうか?
(DB2のODBC接続なのでページ制御方法で頭が真っ白状態です。)
・手法概略か参考サイトがあったら教えて下さい。

お礼日時:2006/08/03 21:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!