トップページ⇒php
1001コメント311KB

【PHP】質問スレッドpart18【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/06/14 14:36ID:???
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ等>>2-4


抜けているものがあったら補足願います
00757204/06/16 16:00ID:hmUL29ON
>>74 やってみましたが駄目でした。すいません。
文字コードがEUCっていうのは関係あるのでしょうか?
0076nobodyさん04/06/16 16:14ID:???
>>75=72
デフォルトだと内部エンコーディングが使われるので、もし違うなら
mb_regex_encodingで設定。
あってるなら、ちとわからぬ。
ちなみにphp4.2.0以上なので、それ以下なら使えないっぽ。
00777204/06/16 16:25ID:hmUL29ON
>>76 すいません。残念ながらEUCであっておりました;;
 原因はなんだろう・・
 直接 文字を入れた変数になら置換できるのに・・
0078nobodyさん04/06/16 16:40ID:???
>>77=72
マテ、配列からちゃんととれているのか?
配列は値が入っているのか?

print_r($array);
print "{$array[0]}";
$str = $array[0];
print "{$str}";

これで全部表示される事を確認したまい。
00797204/06/16 17:06ID:hmUL29ON
>>78 大丈夫でした^^;
0080nobodyさん04/06/16 17:14ID:???
>>72=78
(;´Д`)?
あー、問題なければその配列の作成部分から取得->置き換え->出力までの流れを書いてみてくれ。
もうさっぱりだ。
0081nobodyさん04/06/16 17:15ID:???
すま、流れっつか、スクリプトそのものな。
0082nobodyさん04/06/16 17:17ID:???
さてどんな凡ミスが出てくるか。
0083nobodyさん04/06/16 17:18ID:???
$arrya[0] とかだったら笑っちゃうぜ? ちゃうぜ?
0084nobodyさん04/06/16 18:59ID:???
>>71
if (TRUE==3) echo "TRUE";
で悩んだことがある
echo (int)TRUE;
と違うし・・・・
0085nobodyさん04/06/16 19:02ID:FlwZGV+n
在庫管理システムをPHP+mySQLで作ってまして
入力フォームから追加して、一覧にするまではできました。
問題は、編集時に文字化けが起こるんです。

list.phpが一覧表で、こんな感じに出力してます。
echo '<td><a href="redit.php?mode=edit&sid='.$row["sid"].'&brand='.$row["brand"].'&item='.$row["item"].'&c_price='.$row["c_price"].">編集</a></td>';
echo "<td> ".$row["sid"]."</td>\n";
echo "<td> ".$row["brand"]."</td>\n";
echo "<td> ".$row["item"]."</td>\n";
echo "<td> ".$row["c_price"]."</td>\n";

redit.phpへ $mode = 'edit' の時編集モードに入り、各値をGETで渡して、

echo '<form action="'.$_SERVER["PHP_SELF"].'?mode=edit&sid='.$sid.'" method="post">';
echo "<font size=\"3\"><strong>編集/削除</strong></font>";
echo '<tr align="center"><th>ブランド名</th><td><input type="text" name="brand" size="30" value="'.$brand.'"></td></tr>';
echo '<tr align="center"><th>アイテム</th><td><input type="text" name="item" size="30" value="'.$item.'"></td></tr>';
echo '<tr align="center"><th>仕入原価</th><td><input type="text" name="c_price" size="30" value="'.$c_price.'"></td></tr>';
echo "<tr align=\"center\"><td colspan=\"2\"><input type=\"submit\" name=\"post_mode\" value=\"編集\">

このように、valueで値をフォームに表示していますが、'ム'とか、ある一定の文字で文字化けが起こるんです。

PHPにも禁止文字ってあるんですかね?
この対処方をどなたか教えて頂けませんでしょうか?

文字コードはeuc で作成していて、サーバーLinuxでeucです。
0086nobodyさん04/06/16 19:06ID:???
Sjisのhttp-inputをそのまま処理してるんじゃないの。
http://jp.php.net/mbstring
0087nobodyさん04/06/16 19:19ID:???
スマンソ。ソースが化けるのか。
とりあえずphp.iniかhttpd.confの文字設定あたりかな?
0088nobodyさん04/06/16 19:30ID:FlwZGV+n
>>86=87さん
ご返答ありがとうございます。

さっきのURLのところの
PHP 4.3.0以降、このオプション --enable-mbstr-enc-trans は廃止され、mbstring.encoding_translation に変更となります。HTTP入力文字エンコーディング変換は、 このオプションをOnに設定した場合のみ 有効となります。 (デフォルトは、Offです。)

この辺が関係あるのかなとも思いますが、今は自鯖なんで設定いじれるからいいんですが
サーバーの仕様に関係なく表示させる方法ってないもんですかね?

そのまま処理が問題だとすると

フォームから追加するときに、sjisでSQLに入ってるから、
それをeucで表示しようとして、文字が化けるってことですかね?

でも、リストでは化けないので。。。うーん
0089nobodyさん04/06/16 20:04ID:???
phpで特定のページ以外からのアクセスを禁止にしたいんですけど・・

1つ前のページからちゃんときてない場合(直リン、お気に入り等)は見れないようにしたいんです。

どうやるんですか?
0090nobodyさん04/06/16 20:11ID:???
最終的なhtml出力はsjisじゃなくてeucなの?
そうならlistのほうもsqlから取った値は派手に化けるかと思うんだけど、、。

listでは化けないのにreditで化けるということは、reditへgetで値が渡ってくる時に、
ブラウザがエンコードした文字列の処理でこけてるということっぽい。
ムが化けたりするってことはブラウザからはsjisで来てるんだろうけど、
mb_detect_encoding()でエンコードが所望のものかどうかチェックしてみたほうがいいかも。

ブラウザからの値を内部エンコに変換する方法としは、iniをいじらないなら、
reditのほうでmb_language() + mb_http_input()で入力値を自動変換したり、
$_getの各値をmb_convert_encodingやjcode.phpで逐一変換してから処理するとか。
0091nobodyさん04/06/16 20:13ID:BaSzqMZ7
>>85
わからんけど
<a href="redit.php?mode=edit&sid='.urlencode($row["sid"]).'&brand='.urlencode($row["brand"]).'&item=以下略
はどうでしょう。
0092nobodyさん04/06/16 20:19ID:???
>>89
ブラウザが送ってくるrefererを見る。
リファラを送る機能の無いブラウザやセキュリティ対策ソフトを入れてるヒトは巻き添えで見られない。
.htaccessなど鯖側でやるものでphpではやらない。
session使えばもう少し複雑なコントロールもできるかな。
0093nobodyさん04/06/16 20:23ID:???
>>90-91
まあその辺りだろうな。
91のやり方は変更が少なくていいと思うが、
ユーザから編集後の文字列が渡ってくるわけだから、
どのみちエンコードは変換する必要がでてくることないか?
00947204/06/16 21:37ID:hmUL29ON
>>80 遅れてすみません。

$fp = fopen($file,"r");
flock($fp, 1);
$file = fread($fp , filesize($file));
$file=mb_convert_encoding($file,"EUC","auto");
$csv=split("[\n]",$file);
for($i=1;$i<count($csv)-1;$i++){
$array=split(",",$csv[$i]);
$str=$array[11];
$str=mb_ereg_replace("あ","い",$str);
echo $str;
}

こんな感じでしょうか?
0095nobodyさん04/06/16 21:56ID:???
$csv=split("[\n]",$file);
これいいの?>>79本当かな・・
0096nobodyさん04/06/16 22:10ID:???
>>94
金払ったほうがいいようにしか見えない。
ログのフォーマットを見ないと無理。
0097nobodyさん04/06/16 22:13ID:???
なんか壊滅的なソースだな。
0098nobodyさん04/06/16 23:40ID:???
>>94
mb_regex_encoding('EUC-JP'); を入れるとどうなる?
0099nobodyさん04/06/17 00:21ID:???
>>94
mb_ereg_replace()の直前でvar_dump($str)してくれ。
0100nobodyさん04/06/17 00:24ID:???
データベースの文字コードって、
先のこと考えずに作るなら 取りあえず何にしてる?
0101nobodyさん04/06/17 00:35ID:???
DB板行でやってくれ。
0102nobodyさん04/06/17 00:42ID:???
>>100
OSがEUCなんでスクリプトもDBもEUCにしてる。
下手な小細工要らないし。スプリクトそのものはWin上で
EUCと改行コードLFで書いているんだけどな。
んだけど、UTF8なFedoraCore鯖がそろそろまわってきそうな悪寒。
文字コードそのものはFTPで転送するときに変換すりゃ済むのだが、
メタタグも書き換えるのは面倒そう。http鯖の設定でしのぐ方が
いいのか?
0103nobodyさん04/06/17 00:52ID:???
これからは 先を見越して Unicode? 《季語無し》
0104nobodyさん04/06/17 00:58ID:???
質問させてください。
簡単な掲示板みたいのを作っているのですが入力されたテキストを
ファイルに保存する際に1件につき1行で格納したいと思います。
ファイルから読み出して表示する際には改行もありの状態にしたいので
保存・読み込みのそれぞれで、テキスト中の文字を以下のように相互変換して
やれば良いかなと思ったのですが・・・
[CR]←→"\r" [LF]←→"\n" \←→"\\"

下記のコードで、$s1 と %s3 が等しければ、相互変換は可能ということになりますよね?

 $arr1 = array("\\", "\r", "\n");
 $arr2 = array("\\\\", "\\r", "\\n");
 $s1 = "ABC\r\nEFG \1,000";
 $s2 = str_replace($arr1, $arr2, $s1);
 $s3 = str_replace($arr2, $arr1, $s2);
 echo "<pre>" . $s1 . </pre>";
 echo "<pre>" . $s3 . </pre>";

ところが $s1が上のような場合は問題なく$s3で元に戻るのですが
 $s1 = "ABC\\nDEF\\nGHI\\JKL"
などとすると元にもどりません。

何か間違っているでしょうか。
長文ですみませんが、ご教授ください。
010510404/06/17 01:00ID:???
すみません、</pre> のダブルクォートが抜けてますね。
正しくはこうです。
 echo "<pre>" . $s1 . "</pre>";
 echo "<pre>" . $s3 . "</pre>";
0106nobodyさん04/06/17 02:20ID:WEWy3iw0
XMLを扱いたくて調べてみたらDOMに辿り着いて
まだ実験的なものとかって書いてあるんだけどじゃあ何を使えっていうんだい?
だれか経験者いない?
0107nobodyさん04/06/17 02:29ID:???
> $s1 = "ABC\\nDEF\\nGHI\\JKL"

1. 元データ $s1 → ABC\nDEF\nGHI\JKL
2. 変換 $s2 → ABC\\nDEF\\nGHI\\JKL
3. 逆変換 $s3 → ABC\nDEF\nGHI\JKL

各段階での変数の内容(リテラル)はこうなってるんだと思うが。
1で\\nはエスケープされて改行コードではなく文字列それ自体(ABC\nDEF)として$s1に代入、
2でその\nの\が\\に置換され(ABC\\nDEF)、
3で\\が\に置換される(ABC\nDEF)。
LFは$s1にそもそも入ってないから関係なし、と。
したがってコードはかかれたとおり正常に動作してる。
0108nobodyさん04/06/17 02:34ID:???
>>94
ってかなんでfor文を1から始めてるの?
ファイルの一行目は使わないってこと?
配列は0から始まるって事を勘違いしてたとしたら
$str=$array[11];
は
$str=$array[10];
の間違い。って事はない?
0109nobodyさん04/06/17 02:36ID:???
>>106
dom関数使えばいいよ。
phpでやろうというならdomかdomxmlかxmlparser(expat)かsimplexmlか、pearライブラリの
いずれかを選んでやるしかない。
011010704/06/17 02:39ID:???
>>109
了解しました。
じゃあdomで逝きます。
ありがとうございました。
0111nobodyさん04/06/17 02:44ID:???
もうDOM2対応なんでしょ。
なら変更があるといってもよほど妙な機能を使ってない限り
大したことないような。
漏れはSimpleXml関数とXml関数で足りてるからDOMのことば
よう知らんけど。
0112nobodyさん04/06/17 02:51ID:???
>>108
csvなら一行目が定義フィールドな可能性はある。
まあイテレータが1から始まる理由にはならんけど。
つーかそれ以前にエラー処理とかflockの定数とかありえない文字コードの指定とか
splitを使ってるとことかキャラクタクラスが\nなとことか""で囲まれた値を考慮してないとか
毎回countしてるとことかfgetcsvを使ってないこととか無意味な代入とか、
ようするに釣りじゃなければなんだってことのほうが重要だと思うけど。
0113nobodyさん04/06/17 02:58ID:zQROHTgZ
ワラタ
011410404/06/17 02:59ID:???
>>107
ありがとうございます。
それが正常にならないのです。
各段階を実際に出力させてみると、以下のようになってしまいます。
(上から$s1 $s2 $s3 です)


<pre>ABC\nDEF\nGHI\JKL</pre>
<pre>ABC\\nDEF\\nGHI\\JKL</pre>
<pre>ABC

DEF

GHI\JKL</pre>


書き忘れていましたが環境は PHP4.3.7 + IIS5.0 です。
011510404/06/17 03:00ID:???
たびたびすみません、なぜか1行ずつ空いていますが
実際には空いていません。

<pre>ABC
DEF
GHI\JKL</pre>
0116nobodyさん04/06/17 03:13ID:???
ほんじゃstr_replaceの仕様がそうなんだわ。
検索語・置換語が複数渡ってるから、まず
s2の ABC\\nDEF\\nGHI\\JKL が ABC\nDEF\nGHI\JKL に置換されて、
さらに ABC\nDEF\nGHI\JKL が残りの$arr2の置換(\n -> LF)をやって
s3に改行が入るんだろうね。
0117nobodyさん04/06/17 03:38ID:???
まあLFを変換した\nも、ふつうに文字として入力された\nとか\\nも区別がつかないので、
出力時どれも改行に逆変換されちまうってことですな。
だからリテラル\nがもとに戻らず改行になってしまう。
\nという文字列を入力できなくするのはナンセンスだし、エスケープを実装するとコスト高なので、
入力される可能性のない文字列に置換して保存するしかないか。
0118nobodyさん04/06/17 03:53ID:???
>>116
その通りだが、しかし順番を変えても同じことだぞ。
単純に考えたほうがいい。
0119nobodyさん04/06/17 06:43ID:???
質問させてください。
ImageTTFTextを使って日本語を書き込みたいのですがどうも文字化けしてしまうのです。
文字の部分はUTF-8にエンコーディングしているのですが、
サーバーの仕様に依存するのでしょうか?
ご教授よろしくお願いします。
0120nobodyさん04/06/17 06:59ID:???
サーバーの仕様?
ハードウェアやosやhttpdのことなら関係ないだろ。
phpのコンパイルオプションやini設定には依存する。
何をしてるのかかかれてない以上マニュアル読めとしか言えないよ。
0121nobodyさん04/06/17 10:35ID:dLzzZdYX
>>91
ありがとうございます。それでいけました(^^)
0122nobodyさん04/06/17 13:28ID:mG7yRBZ4
テキストエリアにテキストを読み込んだときにテキストに<br>とあった場合、例えばあああ<br>いいいとあった場合
そのまま表示されてしまいます。<br>を出さずに改行された状態でテキストエリアに読み込みたいのですが
どうすれば良いでしょうか??よろしくお願いします。
0123nobodyさん04/06/17 13:30ID:???
<br>を改行に痴漢
0124ぺぷし04/06/17 13:30ID:t9pcSu9t
PHP+MySQLでBLOBフィールドにバイナリデータとして格納された画像の書き出し。

初めて書き込みさせていただきます。PHP初心者のため、ご教授いただけたら幸いです。
MySQLのデータベースのBLOBフィールドにバイナリデータとして格納してある複数の画像ファイルをPHPでブラウザに全て自動的に書き出すようにしたいのですが、下記のようにDo Whileを使ってフィールドの全データを書き出そうとすると
"Cannot modify header information- headers already sent by output started ..."というエラーになり、画像ではなくバイナリデータのまま
出力されてしまいます。

ちなみに、ループにいれず、クエリで抽出した単一の画像だけを出力する分にはこのようなエラーは出ず、画像を表示することができるので、
ループに入れることで、header情報のContent-typeの指定が繰り返されるのがいけないのだと思うのですが、試しにループの外にheader("Content-type: " . 'image/jpg'); の部分をおいてみるとファイルダウンロードダイアログボックスが開いてしまいます。

ループでの全データ書き出しはできないのでしょうか?
どなたかご存知の方、いらっしゃいましたらお助け下さい。
***********************************************************************
<table border="1">
<tr><td>ID</td><td>Image</td></tr>
<?php do { ?>
<tr><td><?php echo $row_rs1['id'] ; ?></td>
   <td> <?php header("Content-type: " . 'image/jpg');
    echo "<img src= {$row_rs1['image'] } >"; ?></td>
</tr>
<?php } while ($row_rs1 = mysql_fetch_assoc($rs1)); ?>
</table>
0125nobodyさん04/06/17 13:34ID:mG7yRBZ4
>>123

理屈はわかるのですが^^;ソースで書くとどんな風になりますか??よろしくお願いします。
012612504/06/17 13:35ID:mG7yRBZ4
すみません、お礼言うの忘れてました。ありがとうございます、そしてよろしくお願いします
0127nobodyさん04/06/17 13:38ID:???
>>124
なんと言うかだな・・・とりあえず画像とHTMLの出力は別にしようや

>>125
よく分かりませんが、マニュアルを知らないという意味でしょうか?
http://www.php.net/manual/ja/
0128nobodyさん04/06/17 13:38ID:???
>>124
なんじゃぁそのソースは。

>>126
str_replace
0129nobodyさん04/06/17 13:44ID:???
>>124
mysql ヘルプ!
http://pc5.2ch.net/test/read.cgi/php/1011683282/466

('A`)
できない
0130nobodyさん04/06/17 13:54ID:mG7yRBZ4
>>127>>128
ありがとうございます!
これの反対をすればいいということですかね!?

$s = str_replace("\r\n", "\r", $s);
$s = str_replace("\r", "\n", $s);
$s = str_replace("\n", "<br>", $s);
0131nobodyさん04/06/17 19:09ID:???
リンク元URLが /game/index.html からの場合と
/link/index.html からの場合で、出力を振り分けたいのですが、

$gets = getenv{"HTTP_REFERER"};
if ($gets =~ "/game/index.html") {
print ("ゲームから来ましたね");
}
elseif ($gets =~ "/link/index.html") }
print ("リンクから来ましたね");
}

こんな書き方をしても、/link/index.html から来たやつも
全部何故か /game/index.html の方に飛んでしまいます。
分かる方お願いします。
013213104/06/17 19:09ID:AJJf+veG
age忘れました
0133nobodyさん04/06/17 19:17ID:???
>>130
ここ何日かご苦労な釣りを続けてるのはお前か。さっさと死ねよクズ
0134nobodyさん04/06/17 19:19ID:H2q6Vd97
$a = "test";
$b = "test";

print $a.$b;

で文字出力させた時、
何故か$aのtestが漢字で文字化けし、
$bのtestは正常に表示されます。
両方とも半角英字で同じ文書なのに、何故最初のだけが
文字化けするのでしょうか?
分かる方居ましたらお教え下さい。
0135nobodyさん04/06/17 19:22ID:???
131もだな。
何が楽しいんだか。
0136nobodyさん04/06/17 19:23ID:???
>>135
??
0137nobodyさん04/06/17 19:27ID:???
つつくと逆効果だぞw>133
つーかまともに答えてる奴がいるのが笑えるんじゃね。
013813104/06/17 19:27ID:???
>>135
どういう意味ですか?
0139nobodyさん04/06/17 19:37ID:???
つまり股間はガチガチだってこったな
0140nobodyさん04/06/17 19:52ID:???
仕事から帰ってきたら、なんだお前ら!!















>>134も仲間に入れてあげてください
014113104/06/17 20:10ID:???
ここって質問しても答えてもらえないんですか?
他行きます・・
0142nobodyさん04/06/17 20:12ID:???
ワンパターン脳にも程が無いか・・・
0143nobodyさん04/06/17 20:14ID:???
>>134
もちつけ
0144nobodyさん04/06/17 20:39ID:???
>>143
釣りにょ。
0145nobodyさん04/06/17 20:40ID:???
131は文盲ですか?・・・・と聞きたくなる釣りですね
0146nobodyさん04/06/17 20:45ID:???
>>131
=~って・・何年前の話だ。ereg使えよw
014713104/06/17 20:52ID:???
>>146
意味が分からん。つーかもういいよ。自分で考える。
0148nobodyさん04/06/17 21:15ID:???
=~ これってネタの臭いよ。

$gets = getenv{"HTTP_REFERER"};
if (preg("|/game/index.html|",$gets)) {
print ("ゲームから来ましたね");
}
elseif (preg("|/link/index.html|",$gets) }
print ("リンクから来ましたね");
}

はい、どうぞ!
0149nobodyさん04/06/17 21:19ID:???
あっ、しまった。$gets = getenv{"HTTP_REFERER"}; これもネタ臭かった。

君の言語は難題?
0150nobodyさん04/06/17 21:28ID:???
しつもんさせてください
header('Content-Type: image/jpeg');
imagejpeg($im);
で、イメージを出力させてもjpegにならず、bmpになってしまうのはなぜでしょうか?
ご教授よろしくお願いします。
0151nobodyさん04/06/17 21:37ID:???
>>150
釣りキタ━━━━━━(゚∀゚)━━━━━━!!!!!
0152nobodyさん04/06/17 21:45ID:???
>>151
漏れも最初釣りかと思ったんだけど、記憶が確かならば
ブラウザがIEだと画像をローカルに保存するときに御丁寧にもBMPに変換してくれたような。
01539404/06/17 22:01ID:QhI2MtNB
遅くなってすみません。

>>98 おお、いけました^^ ありがとうございました。
 mb_regex_encoding() ではちゃんとEUC-JPとでてるのに・・。

>>99 string(8) "あいうえ"  こんなんでました。

>>108 >>112 察するとおりCSVの1行目は使いたくないので1にしてます。
fgetcsv こんな関数があるとは知りませんでした。
その他いろいろな駄目だしありがとうございました^^;
もっと勉強してみます。
0154nobodyさん04/06/17 22:12ID:???
>>151
ウケタ
015515004/06/17 22:37ID:???
>>152
なるほどです!
ネスケで試したらちゃんとjpgになってました。
IEがいけなかったんですね・・・
ありがとうございました
015613004/06/18 00:01ID:PKyyDHRx
>>133
釣りじゃないですよ。。

$s = str_replace("\n", "<br>", $s);

これで出来ました!
教えてくださった方達どうもありがとう!
初心者の頃は釣りみたいな質問をしちゃうってことか・・

015710404/06/18 00:02ID:???
>>116-118
おっしゃるとおり str_replace では複数の置換を同時に行うと、
置き換えた文字列をさらに置き換えることができてしまうようですね。
結局 preg_replace_callback と str_replace を組み合わせることで解決できました。
どうもありがとうございました。
0158nobodyさん04/06/18 00:44ID:???
nl2br使えよ
\n <-> <br> じゃhtmlが見難くて仕方ない
0159nobodyさん04/06/18 05:32ID:???
>>158
122をよく見て書き込みましょうね
テキストに<br>とあった場合のこと言ってるんだからそれ使えないよ(w
0160nobodyさん04/06/18 08:31ID:???
誰か>>134の釣りにマジレスする者は居ないか?
0161nobodyさん04/06/18 09:21ID:???
>>160
君を>>134と認定する。おめでとう♪
0162nobodyさん04/06/18 13:54ID:???
134
普通にtesttestと出るよ
0163nobodyさん04/06/18 14:34ID:YdLASFW3
postgresqlとphpで掲示板を作っていまして、"前の10件"、"次の10件"機能を備えたいと
考えているのですが。。

仮に12件のフィールドが合った場合、本来なら次の10件をおすと残りの2件だけが表示されるべき
なんですが、何故か残りの2件のあとにまた1から表示し(8まで)最終的に10件になるまで表示してしまいます。

データベースに直接、select * from db limit 10 offset10;
とすると正常に2件のみが表示されます。

phpのスクリプトは
$con = pg_connect("dbname=datebase user=postgres password=***");
$sql = "select * from database limit 10 offset $page";
$result = pg_exec($sql);
$count = pg_numrows($result);
for ($i=0;$i<$count;$i++)
{
//処理
}
とこんな感じですが$countに10が入ってしまっている状況です。

phpかpostgresql側なのかどちらで適切か解らなかったので、もしスレ違いでしたら
申し訳ないです。
ご教示お願いします。
0164nobodyさん04/06/18 15:17ID:kjBT0b/w
>>163
$pageはどこで定義してんの?
0165nobodyさん04/06/18 15:22ID:???
>>163
キミジャムリ アキラメナサイ
0166nobodyさん04/06/18 15:24ID:???
offsetの値を手で変えたりとか、offset/limitを付けたり外したりだとか
試す事はまだいろいろありそうなんだが

デバッグの仕方を自力で覚えないと一生スキルあがんないよ
0167nobodyさん04/06/18 15:33ID:YdLASFW3
>>166

すいません、記入しませんでしたが既に試してます。limitをはずすってどういうことでしょう??

0168nobodyさん04/06/18 15:37ID:YdLASFW3
>>164

if($page=='')
{
$page = '0';
}
.
.
.
if ($page<9)
{
<a href=\"index.php?page=".($page-10)."\">前の10件</a>
<a href=\"index.php?page=".($page+10)."\">次の10件</a>

抜粋しましたがこんな感じです
0169nobodyさん04/06/18 15:38ID:YdLASFW3
if($page=='')
{
$page = '0';
}
.
.
.

<a href=\"index.php?page=".($page-10)."\">前の10件</a>
<a href=\"index.php?page=".($page+10)."\">次の10件</a>
0170nobodyさん04/06/18 15:40ID:???
う゛ぁr_づmp($ぱげ)
0171nobodyさん04/06/18 15:48ID:???
print $sql; を試さないのはなぜですか?
0172nobodyさん04/06/18 16:15ID:kjBT0b/w
>>168
GETで来た$pageの値はどこで受け渡してんの?
0173nobodyさん04/06/18 16:16ID:???
>>168 $_GET['page']だったら頃す
0174nobodyさん04/06/18 16:17ID:kjBT0b/w
そんな予感がしてきたな
■ このスレッドは過去ログ倉庫に格納されています