- 1 名前:nobodyさん mailto:sage [2008/11/22(土) 06:36:02 ID:???]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 PHP使いが優しくコメントを返しますが、 お礼はPHPの布教と初心者の救済をお願いします。 PHP Home Page www.php.net/ jp.php.net/ くだすれPHP(超初心者用)4 pc11.2ch.net/test/read.cgi/php/1213356756/ 適当に関連スレ(マルチはだめぽ) 【PHP】下らねぇ質問はここに書き込みやがれ 69 pc11.2ch.net/test/read.cgi/php/1211879073/
- 610 名前:nobodyさん mailto:sage [2009/01/29(木) 23:28:49 ID:???]
- 何回読んでも>>604のやりたいことがわからない
- 611 名前:nobodyさん mailto:sage [2009/01/29(木) 23:37:26 ID:???]
- 前よく出没してた基地外だろ
- 612 名前:nobodyさん mailto:sage [2009/01/29(木) 23:41:37 ID:???]
- やりたいことは見えてる。
「ログイン・ログアウトとは別にセッションデータを引きまわしたい」ってことだろ。 で、普通は>>604みたいなソースにはならないのに、わざわざ教えてgooだか、 phpのマニュアルでセッション破壊用のソースをそれだと勘違いして質問してるだけ。 すでに回答ついてるのに、人の意見を聞けない困ったチャンか、単なる荒し
- 613 名前:nobodyさん mailto:sage [2009/01/30(金) 10:09:33 ID:???]
- >>607
ログインログアウトとは別に、スタイルシートをセッションで持ち歩いていて、 ログアウト>>606で書いたようにログアウトとしたときセッションに保存してあるスタイルシート変数も消えてしまいます。 なので、セッション(ログアウト)を消す前に$abc = $_SESSION['abc']; として消した後再び、$_SESSION['abc'] = $abc; などにして再度セッションにいれればなと考えていますが、 うまくいきません。 そこで何かいいほうほうは無いものかと。
- 614 名前:nobodyさん mailto:sage [2009/01/30(金) 12:27:38 ID:???]
- 悔しいっ・・・でも・・・触っちゃう・・・っ(ビクビク
>>613 cookie使えよ。sessionなんかにそんなん入れんな。 sessionに入れるならログアウト=専用スタイルシート破棄として使え。 $_SESSION と session_*()を勉強し直して来い
- 615 名前:nobodyさん [2009/01/30(金) 23:37:15 ID:gxYTwHzL]
- epg.2ch.net/tv2chwiki/subject.txt
から、別サーバー(自分のブログとか)に スレの勢いと局、番組名だけを取得して表示させることってできますか?
- 616 名前:nobodyさん mailto:sage [2009/01/30(金) 23:39:57 ID:???]
- うん
- 617 名前:nobodyさん [2009/01/31(土) 00:20:10 ID:Zjr5MV5E]
- <form action="<?= $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="text" name="textbox" value=""> <input type="submit" value="送信"> </form> <?php $text = htmlspecialchars( $_POST["textbox"] ); if ( get_magic_quotes_gpc() ) { $text = stripslashes( $text ); } print $text; ?> これ、ゲストの人がコメント書き込むくらいならいいんだけど、自分が投稿しようと思った時に $_SERVER['PHP_SELF'];が入っているからエディットページ(管理人専用の編集ページ)かなんかでindex.phpに書き込めないと思うんだ。 エディットページでindex.phpに反映させる方法ってない?
- 618 名前:nobodyさん mailto:sage [2009/01/31(土) 00:28:12 ID:???]
- エディットページで$_SERVER['PHP_SELF']にしなければいいのでは?
- 619 名前:nobodyさん [2009/01/31(土) 00:41:31 ID:Zjr5MV5E]
- お!というとどういう風に記述すればいいですか?
- 620 名前:nobodyさん mailto:sage [2009/01/31(土) 00:42:37 ID:???]
- ファイル名
- 621 名前:nobodyさん mailto:sage [2009/01/31(土) 00:42:41 ID:???]
- >>615 $rtn = file_get_contents( 'epg.2ch.net/tv2chwiki/subject.txt ' );
>>617 漏れは神様でもエスパーでもないんだから、 おまいのやりたいことを補完して理解なんかできない。 質問は相手に理解できるように書こう。 でも <input type=hidden name=action value=edit> とか場合わけしる
- 622 名前:nobodyさん mailto:sage [2009/01/31(土) 00:43:50 ID:???]
- なぜにhidden使う必要が?
- 623 名前:nobodyさん [2009/01/31(土) 01:07:34 ID:Zjr5MV5E]
- >>621 説明足らずで すまん ありがとう。要は管理人専用ページでこのスクリプトを使用した時に$_SERVER['PHP_SELF']だと現在いじってる(管理人専用ページ)でスクリプトが実行されてしまうんではないかと。
あくまで表示したいのはindex.phpなので、そこんとこどうなんかなーと思いまして。 >>620 と、いうことは$_SERVER['PHP_SELF']を$_SERVER['index.php']にしたらいいってことですか?
- 624 名前:nobodyさん mailto:sage [2009/01/31(土) 01:09:00 ID:???]
- お前は何を言ってるんだ?
- 625 名前:615 [2009/01/31(土) 01:27:06 ID:myPf0iH/]
- >>621
<?php $temp = "epg.2ch.net/tv2chwiki/subject.txt"; $html_f=file_get_contents($temp); $replace = "(2)"; $scriptphp = "<br />"; $word = str_replace($replace, $scriptphp, $html_f); $hogeru = ".dat<>"; $gogeta = "<br />"; $yabai = str_replace($hogeru, $gogeta, $word); print $yabai; print($word1_a); ?> から、偶数行だけ表示するにはどうしたらいいんでしょうか?
- 626 名前:nobodyさん [2009/01/31(土) 01:27:12 ID:Zjr5MV5E]
- すみません。ようやく分かってきました。
$_SERVER['PHP_SELF'] これ書かなきゃいいんですね。 じゃあそのかわりformのactionにはなんて書けばいいんですかね?
- 627 名前:nobodyさん mailto:sage [2009/01/31(土) 01:28:37 ID:???]
- actionの意味知らんの?
- 628 名前:nobodyさん [2009/01/31(土) 01:30:22 ID:Zjr5MV5E]
- 正直なところform処理いじったことがありませんもので…。非常に申し訳ないんですが教えてくれると助かります…
- 629 名前:621 mailto:sage [2009/01/31(土) 01:35:09 ID:???]
- >>625 最初からそれをいいたまへ
$rtn = file( 'epg.2ch.net/tv2chwiki/subject.txt ' ); for ( $n = 0; $n < count( $rtn ); $n = $n + 2 ) echo $rtn[$n];
- 630 名前:621 mailto:sage [2009/01/31(土) 01:38:56 ID:???]
- >>623 やっと意味がわかった。管理人は管理人ようのページを作り給え
- 631 名前:nobodyさん [2009/01/31(土) 01:46:56 ID:Zjr5MV5E]
- >>630ありがとうございます。じゃあ$_SERVER['PHP_SELF']はいらないってことですかね?
- 632 名前:nobodyさん mailto:sage [2009/01/31(土) 01:55:22 ID:???]
- >>631
<? // index.php if ( $_POST['textbox' != '' ) { なんか処理 } ?> <html><body> <form action="index.php" method="post> <input type="text" name="textbox" value=""><input type="submit" </form> </body></html> と <? // kanri_index.php if ( $_POST['textbox' != '' ) { なんか処理 } ?> <html><body> <form action="kanri_index.php" method="post> <input type="text" name="textbox" value=""><input type="submit" </form> </body></html> を作れ
- 633 名前:nobodyさん mailto:sage [2009/01/31(土) 01:59:14 ID:???]
- いやindex.phpでいいだろ
- 634 名前:nobodyさん mailto:sage [2009/01/31(土) 02:06:10 ID:???]
- 色んなやり方あるけど初心者だそうだからいちばん新ぷりに
- 635 名前:nobodyさん [2009/01/31(土) 13:18:26 ID:Zjr5MV5E]
- ありがとうございます!ようやくわかった気がします。actionって動作させたいファイル名を指定したらいいんですね。
これでなんとかなりそうです。ありがとうございました!
- 636 名前:nobodyさん mailto:sage [2009/01/31(土) 19:25:28 ID:???]
- prepareの使い方で質問があります。
下記のコードを実行すると Call to a member function prepare() on a non-object とエラーが返ってきます。 $sql = "insert into table (column2,column1) values(?,?)"; $sth = $this->db->prepare($sql); $result = $this->db->execute($sth, array($column2_value,$column1_value)); プレースホルダを使わずqueryを発行すると問題なくdbが更新されるのですが、 どこかおかしいのでしょうか
- 637 名前:nobodyさん mailto:sage [2009/01/31(土) 19:26:42 ID:???]
- すみません、環境書き忘れました。
php5,postgresです
- 638 名前:nobodyさん mailto:sage [2009/01/31(土) 19:28:26 ID:???]
- >636
どのクラスのprepareだよこの馬鹿馬鹿まんこ! $this->dbが接続失敗か何かで初期化されていないように思われる。
- 639 名前:nobodyさん mailto:sage [2009/01/31(土) 20:01:51 ID:???]
- レスどうもありがとうございます。
そのあたりを探ってみます。
- 640 名前:nobodyさん mailto:sage [2009/01/31(土) 20:02:31 ID:???]
- いや$dbのnewしてるとこ見れば一発だろw
- 641 名前:nobodyさん mailto:sage [2009/01/31(土) 20:16:52 ID:???]
- 出来ました。どうもありがとうございます。
さっきのエラーは昔書いたクラスコピペして直したら出なくなったのですが、 dbが更新されなくて悩んでいたら文字コードの違いが原因でした。 mb_convert_encodingで挿入する値をdbの文字コードに直して解決しました。 お世話様でした。
- 642 名前:nobodyさん [2009/01/31(土) 20:23:42 ID:QDNvJIlq]
- sqlite php5 利用です。
登録メールアドレスの重複チェックをしたいのですが、うまく動きません。 if(!$db=sqlite_open("database/database.sqlite",0666,$err)){ die("データベース接続エラー".$err."<br>"); } ////////////////////////////データベース二重登録防止//////////////// $check_sql="SELECT * FROM add_table WHERE add = '$mailadd'"; if($abc = sqlite_query($db,$check_sql)){ header("Location: mail.php?miss=miss&miss_naiyou=sumi"); //登録済みの場合は飛ばす } sqlite_close($db); //データベースクローズ
- 643 名前:nobodyさん mailto:sage [2009/01/31(土) 20:26:51 ID:???]
- >>642
jp2.php.net/sqlite_query
- 644 名前:nobodyさん [2009/01/31(土) 20:31:10 ID:lgngjuqH]
- <?php
$temp = "epg.2ch.net/tv2chwiki/subject.txt"; $html_f=file_get_contents($temp); $br = "<br />"; $replace = "(2)"; $word = str_replace($replace, $br, $html_f); $replace = ".dat<>"; $word = str_replace($replace, $br, $word); $replace = "res/min"; $word = str_replace($replace, $br, $word); $replace = "] "; $word = str_replace($replace, $br, $word); $a = explode( "<br />", $word ); $b[0]= "g"; print $a[2]; print $br; //…(1) print $b[0]; print $br; $strs[0] = "srename :"+ $a[2] +",";//…(2) $strs[1] = $b[0]; print $strs[0]; print $br;//…(3) print $strs[1]; ?> 出力 [NHK総合]探検ロマン世界遺産 g 0 g (3)の$strs[0] が0になってしまうのはなんでですか? おねがいします。
- 645 名前:nobodyさん [2009/01/31(土) 20:33:43 ID:QDNvJIlq]
- >>643
マニュアル見てもさっぱりわかりません
- 646 名前:nobodyさん mailto:sage [2009/01/31(土) 20:39:00 ID:???]
- >>644
+を.にかえてみ
- 647 名前:nobodyさん mailto:sage [2009/01/31(土) 20:40:47 ID:???]
- >>645
じゃ諦めれ
- 648 名前:nobodyさん mailto:sage [2009/01/31(土) 20:42:10 ID:???]
- >>646
おーできました ありがとうございます!!
- 649 名前:nobodyさん [2009/01/31(土) 20:59:19 ID:QDNvJIlq]
- >>642
解決しました。 if(sqlite_fetch_array(sqlite_query($db,$check_sql))){ header("Location: mailmagazine.php?miss=miss&miss_naiyou=sumi"); } >>643 ありがとうございます
- 650 名前:nobodyさん mailto:sage [2009/02/01(日) 21:04:08 ID:???]
- 質問です
elseif (preg_match("/^\d{8}$/", $_GET["id"])){ $id = $_GET["id"]; } GETで8桁の数字のみ受け取るように↑のようにしましたが if文でマッチしてても変数に代入する際はpreg_matchなりで GET変数内を数字のみとなるように変換した方がいいものなんでしょうか
- 651 名前:nobodyさん mailto:sage [2009/02/01(日) 21:10:26 ID:???]
- お前は何を言ってるんだ
- 652 名前:nobodyさん mailto:sage [2009/02/01(日) 21:11:12 ID:???]
- >650
俺ならctype_digit($str) && strlen($str) === 8 まあそれはそれとして、別にいいんじゃね。その正規表現にマッチしてるなら間違いなく数字だけだし。
- 653 名前:nobodyさん mailto:sage [2009/02/01(日) 21:16:32 ID:???]
- 末尾の$は改行にもマッチするから数字だけとは限らないんじゃ?
- 654 名前:nobodyさん mailto:sage [2009/02/01(日) 22:42:37 ID:???]
- ググってたら遅くなりました
>>652 matchに漏れがなければ問題ないように思たんですが あげてもらった関数の方が確実 でしょうか >>653 正規表現はまだよくはわかってないのですがググったところ \r\nのことでしょうか。 scripting.cocolog-nifty.com/blog/2008/12/post-c9b4.html ここを参考に一応"/^\d{8}\r?$/"としてみましたが >hoge$に掛かりません の理屈が今一わかりません。
- 655 名前:650 mailto:sage [2009/02/01(日) 22:56:05 ID:???]
- よく考えたら\rが混じる時点で正常なデータではないので
もとの"/^\d{8}$/"で問題なしな気がしますがどうなんでしょう
- 656 名前:652 mailto:sage [2009/02/01(日) 23:22:37 ID:???]
- 重視したのは分かりやすさ。正規表現だと、何を意味しているのか分かりづらい。
パターンがよほど複雑な時以外は正規表現は避けたほうがいい。 >653-654 改行とか忘れてたわ。 if(preg_match("/^\d{8}$/", "12345678\n")){ echo 'match'; }
- 657 名前:nobodyさん mailto:sage [2009/02/03(火) 00:43:02 ID:???]
- 半年ロムってろと言われてずっと見てきたが
もうPHP諦めることにした。さっぱり分からん。 このスレのどこが超初心者用なんだ。
- 658 名前:nobodyさん mailto:sage [2009/02/03(火) 01:51:58 ID:???]
- 3年ROMってろ
- 659 名前:nobodyさん mailto:sage [2009/02/03(火) 02:00:14 ID:???]
- もう、諦めたんだ放って置いてくれw
プログラムなんて嫌いだ。
- 660 名前:nobodyさん mailto:sage [2009/02/03(火) 09:47:26 ID:???]
- 何が分かんないんだよ
- 661 名前:nobodyさん mailto:sage [2009/02/03(火) 10:34:27 ID:???]
- 放っておいてやれよ
- 662 名前:nobodyさん mailto:sage [2009/02/03(火) 14:10:58 ID:???]
- なんか残念だな...。
このスレだけ読み続けても、超初心者が分かるようにはならないと思う。 このスレは、超初心者も質問していいというだけで、来る質問が全部、 超初心者向けというわけではないから。 もう見てないかもしれないけれど、入門書を図書館とかで借りてきたほうが いいと思うよ。
- 663 名前:nobodyさん mailto:sage [2009/02/03(火) 14:18:03 ID:???]
- PHPなんってググって触ってみりゃ、どうにでもなるものを、
半年もROMってわからないなんて、ネタに決まってるだろ もしネタじゃないなら、10年はROMるべき。 そうして人生が終わるさ
- 664 名前:nobodyさん mailto:sage [2009/02/03(火) 20:28:48 ID:???]
- 人生も諦めたらスッキリするのに
- 665 名前:nobodyさん mailto:sage [2009/02/04(水) 06:33:54 ID:???]
- >>664
全く原因が分からないのでお聞きしたいのですが… $im=createimagefromjpeg(image.jpg); imagejpeg($im); destroy 上記の様な単純な記述で画像を開きたいのですが、 ローカルならできるのになぜかインターネット経由だと できないのです… 実行すると半角で「リ」と表示されるだけで print hoge;などを付け足しても何もかわりません phpinfoでGDが使えることは確認したのですが、 他に原因が思いつきません 初心者丸出しすいませんが教えていただければ尻丸出しにしますのでどうかお願いします
- 666 名前:nobodyさん mailto:sage [2009/02/04(水) 06:34:18 ID:???]
- >>664
全く原因が分からないのでお聞きしたいのですが… $im=createimagefromjpeg(image.jpg); imagejpeg($im); destroy 上記の様な単純な記述で画像を開きたいのですが、 ローカルならできるのになぜかインターネット経由だと できないのです… 実行すると半角で「リ」と表示されるだけで print hoge;などを付け足しても何もかわりません phpinfoでGDが使えることは確認したのですが、 他に原因が思いつきません 初心者丸出しすいませんが教えていただければ尻丸出しにしますのでどうかお願いします
- 667 名前:nobodyさん mailto:sage [2009/02/04(水) 06:50:26 ID:???]
- image.jpgがないんでね?
- 668 名前:nobodyさん mailto:sage [2009/02/04(水) 08:17:43 ID:???]
- >>666
MIMEヘッダー出してる?
- 669 名前:nobodyさん mailto:sage [2009/02/04(水) 10:03:22 ID:???]
- ああそれだな
- 670 名前:nobodyさん mailto:sage [2009/02/04(水) 17:18:03 ID:???]
- >>667
確かにファイルは存在しています・・・ >>668 MIMEヘッダーは header("content-type: image/jpeg"); で出力できてますでしょうか? ご指摘の後にこれを追加してやってみてのですがだめでした。 ただ、文字化けのような表示から画像を表示できていないマーク? のような表示にはかわりました・・・
- 671 名前:nobodyさん mailto:sage [2009/02/04(水) 17:25:29 ID:???]
- >>670
imagecreatefromjpeg にしてみたら? それで、$imがfalseになってないかチェック それから、imageやheaderを出力する前に余計な出力をしないように、ソースの冒頭でob_startして、直前で破棄
- 672 名前:nobodyさん mailto:sage [2009/02/04(水) 17:39:12 ID:???]
- ところで皆さんPHPとMYSQLは勉強し始めて
どれくらいの期間で使えるレベルになりましたか?
- 673 名前:nobodyさん mailto:sage [2009/02/04(水) 17:41:17 ID:???]
- 使うだけなら書籍読みつつ1日でカバーできる範囲
使いこなすまでは相当かかったが
- 674 名前:nobodyさん mailto:sage [2009/02/04(水) 17:50:34 ID:???]
- >>670
「image.jpg」→「"image.jpg"」
- 675 名前:nobodyさん mailto:sage [2009/02/04(水) 18:10:51 ID:???]
- "imagejpg"になってたりするのか
- 676 名前:nobodyさん mailto:sage [2009/02/04(水) 18:32:32 ID:???]
- そもそもcreateimagefromjpegなんて標準関数はないわけだが
imagecreatefromjpeg(string $filename)ならあるけど
- 677 名前:nobodyさん mailto:sage [2009/02/04(水) 18:33:11 ID:???]
- 単純にサーバにGDライブラリがはいってないだけなんじゃね?
phpinfoみてみれ
- 678 名前:nobodyさん mailto:sage [2009/02/04(水) 18:37:31 ID:???]
- >>677
>>666
- 679 名前:nobodyさん mailto:sage [2009/02/04(水) 18:37:52 ID:???]
- >>676
>>671
- 680 名前:nobodyさん mailto:sage [2009/02/04(水) 18:38:31 ID:???]
- 書いたとおりに載せないで情報小出しにしてる時点でもう答えようがない
- 681 名前:nobodyさん mailto:sage [2009/02/04(水) 18:38:39 ID:???]
- 要するに釣り
- 682 名前:666 mailto:sage [2009/02/04(水) 20:04:43 ID:???]
- お騒がせ致しました
釣りではないのです 広告自動表示のレンタルサーバーを使用していたためにうまくいかなかったようです 広告無しのサーバーでは問題なく表示できました。 ありがとうございました
- 683 名前:nobodyさん mailto:sage [2009/02/04(水) 22:08:23 ID:???]
- 広告自動挿入のサーバーだと
ヘッダー情報ってだめなの?
- 684 名前:nobodyさん mailto:sage [2009/02/04(水) 22:09:01 ID:???]
- PHPの講師やりたいんだけど、
どこの学校がおすすめ?
- 685 名前:nobodyさん mailto:sage [2009/02/04(水) 22:31:36 ID:???]
- 学校行ってまでPHP学びたいと思うか?
- 686 名前:nobodyさん mailto:sage [2009/02/04(水) 22:37:41 ID:???]
- >>685
だって一日で20万もらえるってよ バカらしくてコーダーなんかやってられないよ
- 687 名前:nobodyさん mailto:sage [2009/02/04(水) 22:41:25 ID:???]
- SQL(SQLite)なんですが単対多のデータを取得したら
|A|a|1| |A|a|2| |A|b|1| |A|b|2| |B|c|1| |B|d|1| みたいになるじゃないですか。 重複した項目をまとめて(A,(a,b),(1,2)),(B,(c,d),1)な感じにする関数てあるんでしょうか。
- 688 名前:nobodyさん mailto:sage [2009/02/04(水) 22:46:57 ID:???]
- >>685
pdoj.wordpress.com/2009/02/04/fetch-modes/ とりあえず翻訳やってみたけど、どう?
- 689 名前:nobodyさん mailto:sage [2009/02/04(水) 22:50:36 ID:???]
- >>687
pdoとかMDBとかにあるよ sqliteは知らんけど
- 690 名前:nobodyさん mailto:sage [2009/02/04(水) 22:52:37 ID:???]
- >>688
ドキュメントの翻訳で「〜と思う」なんて普通使わない
- 691 名前:nobodyさん mailto:sage [2009/02/05(木) 00:20:18 ID:???]
- >>689
ありがとうございます。 探したらfetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)がそれらしいです。 ただマニュアルの例で例えると array(3) { ["apple"]=> array(2) { [0]=> string(5) "apple" [1]=> string(5) "apple" } みたいな感じにカラム0の値しか取得できてないようです。 自分がどこか間違ってるのかSQLiteが対応してないのか... もう少し試してみます。
- 692 名前:nobodyさん mailto:sage [2009/02/05(木) 00:47:17 ID:???]
- >>691
ほい jp2.php.net/manual/ja/pdostatement.fetchall.php
- 693 名前:nobodyさん mailto:sage [2009/02/05(木) 00:49:12 ID:???]
- $str = '4,980 円';
↑みたいなフォーマットの価格データを整数値にしたいんだけど ↓よりシンプルにやる方法ってある? $str = str_replace(array(' ', ',', '円'),array('', '', ''),$str);
- 694 名前:nobodyさん mailto:sage [2009/02/05(木) 00:51:20 ID:???]
- $str = (int)str_replace(',','',$str)
- 695 名前:nobodyさん mailto:sage [2009/02/05(木) 00:54:43 ID:???]
- ありがとうg
- 696 名前:nobodyさん mailto:sage [2009/02/06(金) 21:22:00 ID:???]
- >>692
MySQLでも試してみたのですが結果は同じでサンプルのような結果にならないのですが どこか捉え違いしているのでしょうか。 PHP 5.2.6/MySQL 5.0.4 |apple|red| |banana|yellow| |apple|green| という内容として、 $dbh = new PDO('mysql:〜','root','root');//もしくは'sqlite:〜' $sql = "SELECT name,color FROM table1"; $sth = $dbh->prepare($sql); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP,0); var_dump($result); $stmt = null; 結果 array(2) { ["apple"]=> array(2) { [0]=> string(5) "apple" [1]=> string(5) "apple" } ["banana"]=> array(1) { [0]=> string(6) "banana" } } となります。
- 697 名前:nobodyさん mailto:sage [2009/02/06(金) 21:29:26 ID:???]
- サンプルのような結果と言われても、サンプルのような結果がどんなもんだかわからんからね。
とりあえず、FETCH_GROUPなんだし、結果が正しいように思うが?
- 698 名前:nobodyさん mailto:sage [2009/02/06(金) 21:34:36 ID:???]
- まぁ、試しに
PDO::FETCH_COLUMN|PDO::FETCH_GROUP じゃなく PDO::FETCH_ASSOC|PDO::FETCH_GROUP にしてみたら?
- 699 名前:nobodyさん mailto:sage [2009/02/06(金) 21:39:06 ID:???]
- >>697
失礼、サンプルは>>692にもあるPDOStatement->fetchAllの例3です。 期待した結果は ["apple"]=> array(2) { [0]=> string(5) "red"... なんですが、>>696が正しいということはやっぱりなにか勘違いしてるのかなぁ
- 700 名前:nobodyさん mailto:sage [2009/02/06(金) 21:43:25 ID:???]
- あぁそれか、fetchAllの第2引数に0が入ってるじゃん、だから、カラムが制約されてる
それ、外したらどうなる?
- 701 名前:nobodyさん mailto:sage [2009/02/06(金) 21:48:42 ID:???]
- array(2) {
["apple"]=> array(2) { [0]=> string(3) "red" [1]=> string(5) "green" } ["banana"]=> array(1) { [0]=> string(6) "yellow" } } になったけど
- 702 名前:nobodyさん mailto:sage [2009/02/06(金) 21:49:22 ID:???]
- ああすまん本人じゃなくて俺の環境でやったらってことね
- 703 名前:nobodyさん mailto:sage [2009/02/06(金) 22:07:01 ID:???]
- >>700
あれ?どうも。0がなくてもうまく取得できなかった気がしたんですが 今0を外したらPDO::FETCH_ASSOC|PDO::FETCH_GROUP同様うまくいきました。 |PDO::FETCH_GROUPがついたときは第2引数で指定したPDO::FETCH_COLUMNを基準に グループ化するのかと勘違いを… 実際は複数のカラムが必要なのでPDO::FETCH_NUM|PDO::FETCH_GROUPで 思った通りの結果が得られるようになりました。ありがとうございました。 >>701も確認ありがとうございます。
- 704 名前:nobodyさん mailto:sage [2009/02/06(金) 22:11:15 ID:???]
- fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP,0); で普通に取得できたが?
後進のために原因を明らかにしといてくれ
- 705 名前:nobodyさん mailto:sage [2009/02/06(金) 22:21:43 ID:???]
- >>704
もし、第2引数に0が入ってても第2カラムを取得できたんならバグだと思うよ
- 706 名前:nobodyさん mailto:sage [2009/02/06(金) 22:26:54 ID:???]
- お前は何をいっちょるんだ?
第2引数に0を入れるということは1番目のCOLUMNを用いて残りのカラムをGROUP化するってことだぞ
- 707 名前:nobodyさん mailto:sage [2009/02/06(金) 22:29:53 ID:???]
- >>778
何も問題ないが
- 708 名前:nobodyさん mailto:sage [2009/02/06(金) 22:30:55 ID:???]
- すまん誤爆した
- 709 名前:nobodyさん mailto:sage [2009/02/06(金) 22:57:48 ID:???]
- >>706
デマ書いてすまん、よくわかってなかった。 そのはずだよねぇ。
- 710 名前:nobodyさん mailto:sage [2009/02/08(日) 19:09:17 ID:???]
- <?php
try { function exception_error_handler($errno, $errstr, $errfile, $errline ) { throw new ErrorException($errstr, 0, $errno, $errfile, $errline); } set_error_handler("exception_error_handler"); fntest(); function fntest() {echo "call function";} } catch (ErrorException $exception){ echo "何かエラーだよ<br />"; echo $exception->getMessage()."<br />"; echo "line:".$exception->getline(); exit(); } ?> これを実行するとFatal error: Call to undefined function fntest() in〜と出ます 定義を先にするかtry〜catchをなくすとエラーは出ません 何がいけないんでしょうか
|

|