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

【PHP】下らねぇ質問はID出して書き込みやがれ 86

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/07/31(金) 21:19:01ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0237nobodyさん2009/08/06(木) 15:31:49ID:???
$query = "select * from 物件表 where";
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 13105={$val}";
 }
}
foreach ($_POST['town_cd'] as $key => $val) {
 if ($key == 0) {
  $query .= " 13106={$val}";
}
}
02382372009/08/06(木) 15:35:13ID:Qt302JJo
ageてしまった。
0239nobodyさん2009/08/06(木) 15:45:10ID:???
>>237
なんでもいいけどそのソースはなに?
$keyが0の時だけなんかしたいなら最初から
$query = "select * from 物件表 where 13105=".$_POST['town_cd'][0]." AND 13106=".$_POST['town_cd'][0];

でいいんじゃないの?
あとANDかORで繋がないと文法エラーになるよ
0240nobodyさん2009/08/06(木) 16:10:24ID:???
まだ続いてんのか。
0241nobodyさん2009/08/06(木) 16:20:42ID:sYopahvA
$ary = array(3, 5, 5, 9 ,2, 5, 2, 7)を
$ary = array(3, 5, 9, 2, 7)としたいです。
ルールはindexの低い順に格納し、すでに格納している値と
同じ値ならスルーする。
アルゴリズムが分かりません。教えてください。
0242nobodyさん2009/08/06(木) 16:24:57ID:???
foreach でオリジナルの配列をまわし、新しい配列に
重複しないものだけを追加していけばいいんじゃないかな。
0243nobodyさん2009/08/06(木) 16:28:12ID:???
えっ
http://jp2.php.net/array_unique
0244nobodyさん2009/08/06(木) 16:30:42ID:sYopahvA
>>243
ありがとうございます。
0245nobodyさん2009/08/06(木) 17:43:04ID:Qt302JJo
ひとつずつくぎりたいんだ。
<?php
if( isset(13106=$_POST['town_cd'] ){
$query = "select * from 物件表 where 13106=$_POST['town_cd']
}else{
}
?>
13106のデータを出したいんだ。

どうすればいい?
0246nobodyさん2009/08/06(木) 17:46:55ID:???
理想の入力データと出力データを書けうざい
0247nobodyさん2009/08/06(木) 17:52:38ID:Qt302JJo
http://www.livein-tokyo.com/search3.phpこれみたく
たとえば13106、13107のデータをチェックボックスでチェック
されたら13106、13107分けて、13106の画像、説明が次で表示される。
その下に同様に13107の画像、説明が表示される。
うまく説明できないけどこんな感じです。
0248nobodyさん2009/08/06(木) 17:56:34ID:???
$_POST['town_cd']に何が入っててどういう結果を出したいのかを書いて
0249nobodyさん2009/08/06(木) 18:00:09ID:Qt302JJo
$_POST['town_cd']にはひとつ13106がはいっていてほしい
そして13106で検索してその土地、画像、説明文がでてきてほしい
0250nobodyさん2009/08/06(木) 18:02:46ID:???
>>247
phpはひとまずおいといて、必要なSQL文がどのようなものになるのか理解してからきなさい。
両方一緒に質問するのは君にはムリだよ。
0251nobodyさん2009/08/06(木) 18:03:10ID:???
13106っていうカラム名なの?
0252nobodyさん2009/08/06(木) 18:06:52ID:???
$_POST['town_cd']は絶対に13106が入るの?
あとissetは変数がセットされてるか調べるだけisset(13106=$_POST['town_cd'])なんて使い方は出来ない
0253nobodyさん2009/08/06(木) 18:11:22ID:Qt302JJo
そうか。もうぜんぜんだめだ。
説明ができない。
$_POST['town_cd']はチェックされた数値が入る
0254nobodyさん2009/08/06(木) 18:15:38ID:Qt302JJo
$_POST['town_cd']にはチェックされた数値が入って
それをチェックした分だけ画像や説明文をsql文で呼び出す
プログラムを作りたい。
0255nobodyさん2009/08/06(木) 18:23:56ID:???
変数**には**から**の範囲の数値文字列が配列で複数個入っていて〜とか
SQLのデータ構造は主キーが**で〜とか言ってくれないと
0256nobodyさん2009/08/06(木) 18:44:24ID:???
言っていることは分かるけど、
魚を与えるより、釣りの仕方を教えたい。

SQL は忘れて、まずは PHP のチェックボックスを学んだ方がいいよ。
0257nobodyさん2009/08/06(木) 18:58:33ID:???
なんか面倒になってきたな

DBの内容を以下 テーブル名bukken
物件番号,土地,画像,説明文
001 東京 001.jpg 東京の物件です
002 大阪 002.jpg 大阪の物件です
003 京都 003.jpg 京都の物件です

んで選択画面のHTMLで
SELECT * FROM bukkenのクエリを発行し、結果を$bukkenに入れる
foreach($bukken as $value){
echo '<input type="checkbox" name="bukken[]" value="'.$value[物件番号].'">';
echo $value[土地];
・・・略
}

送信先で
2次元配列$_POST['bukken']に物件番号が送られてくる
ここまでいいか?
0258nobodyさん2009/08/06(木) 19:11:27ID:???
>>236
どうもありがとうございます
たすかりました
0259nobodyさん2009/08/06(木) 19:18:51ID:???
ローマ字変数名きめぇ
0260nobodyさん2009/08/06(木) 19:40:38ID:???
ここまで分かるなら実際に動かしてみろよ・・
0261nobodyさん2009/08/06(木) 20:16:35ID:BSJAUmaX
MT互換というか、できるだけMTそのまんまの無料ブログサービスを教えてください
0262nobodyさん2009/08/06(木) 20:17:47ID:BSJAUmaX
誤爆しました
すみません
0263nobodyさん2009/08/06(木) 21:17:51ID:???
>>247
あのさ・・・DB使ったシステム構築したことあるの?
13106と13107のデータをOR検索したら両方のデータがとれるじゃん
あとはとってきたデータを順番に表示してるだけでしょ
クエリ送る段階で分ける必要はぜんぜんないんだけど
0264nobodyさん2009/08/06(木) 21:25:06ID:???
何というか、2chにも親切な人はいるんだな
0265nobodyさん2009/08/06(木) 21:41:08ID:mexO5YhN
ども PHP書くとき何のソフト使ってます?
0266nobodyさん2009/08/06(木) 21:42:01ID:???
vi
0267nobodyさん2009/08/06(木) 21:55:09ID:???
viとは硬派だな

俺はvim + debugger.vim + Xdebug
0268nobodyさん2009/08/06(木) 22:07:48ID:???
最先端のメモ帳
ていうかこういう話題は別のスレだったきがするが
0269nobodyさん2009/08/06(木) 22:29:34ID:???
PHPエディタ(スタンドアロン)
0270nobodyさん2009/08/06(木) 22:39:42ID:???
PHPエディタ(IDE)からEclipseに移行中
でも重くてうんざりする。

PHPエディタのスタンドアロン版が不意に更新されたので、
IDE版もいろいろ不満点が解消される時が来るのかなーと少し期待。
0271nobodyさん2009/08/06(木) 22:39:47ID:???
PDT

エディタは別スレあるが、全然書き込み無い
komodoに期待してる。
0272nobodyさん2009/08/06(木) 22:41:57ID:???
>>270
>PHPエディタのスタンドアロン版が不意に更新されたので、

全然知らなかった。
だがたいした修正じゃないなw
0273nobodyさん2009/08/06(木) 22:56:27ID:???
秀丸だな
0274nobodyさん2009/08/06(木) 23:03:28ID:???
サクラ使ってる俺は少数派?
0275nobodyさん2009/08/06(木) 23:10:38ID:???
>>274
(゚∀゚)人(゚∀゚)ナカーマ
0276nobodyさん2009/08/06(木) 23:12:14ID:???
>231
PHP関係なくなって恐縮だが、graphvizを使うといい。
0277nobodyさん2009/08/07(金) 01:52:22ID:???
>>276
おおお…理想通りなソフトすぎて、感動してしまった…
これから色々調べて使ってみたいと思います。
本当にありがとうございます。
0278237です。2009/08/07(金) 03:45:30ID:ts6lfKVw
257様続きをどうぞ。
勉強になります。
遅くなりましてすいません。
0279nobodyさん2009/08/07(金) 03:55:38ID:xbsfYg7f
DWみたくF12押すと、FTPでUPしてブラウザ立ち上がってそのページ表示
を自動でしてくれるエディタねいですか?
0280nobodyさん2009/08/07(金) 04:56:19ID:???
>>278
おいおい
テストをレン鯖でやる気かい?
xamppでもいれて開発しなさい
0281nobodyさん2009/08/07(金) 05:06:52ID:???
rubyでソケットで通信する際に
TCPSocket.open("localhost", port)
のように書くのを、
phpではどのように書けばいいのでしょうか?
0282nobodyさん2009/08/07(金) 05:12:03ID:???
fsockopenあたりしらべてみ
0283237です。2009/08/07(金) 06:52:46ID:ts6lfKVw
257様そこまでは理解できています。
続きをお願いします。
0284237です。2009/08/07(金) 06:54:16ID:ts6lfKVw
続きをかいてください。
0285nobodyさん2009/08/07(金) 09:06:46ID:???
しね
0286nobodyさん2009/08/07(金) 09:11:33ID:???
お前は何なんだ...。
0287nobodyさん2009/08/07(金) 09:13:55ID:???
結局は、誰かに代わりに考えて欲しいだけなのか。
0288nobodyさん2009/08/07(金) 09:57:38ID:???
つーか宿題なんじゃねーの?
0289nobodyさん2009/08/07(金) 10:07:49ID:???
俺が小学生の頃はそんな宿題はなかったなー。
0290nobodyさん2009/08/07(金) 11:09:49ID:???
>>279
xyzzy + browserex + ftpupdate
0291nobodyさん2009/08/07(金) 11:58:45ID:???
>>283
あとは送られてきた物件番号だけを問い合わせればいいから
$sql = "SELECT * FROM bukken WHERE ";
$where ="物件番号='" . implode("' OR 物件番号='",$_POST['bukken']) . "'";

$sql .= $where;

$sql変数のクエリを発行すれば良い


わかったらもうくんな
0292nobodyさん2009/08/07(金) 12:13:05ID:???
>>291
これはひどい
0293237です。2009/08/07(金) 12:37:32ID:ts6lfKVw
$sql = "SELECT * FROM bukken WHERE ";
$where ="物件番号='" . implode("' OR 物件番号='",$_POST['bukken']) . "'";
最後の一文があんまりよくわかりません。
ここの部分を教えてください。
よろしくお願いします。
宿題ではないです。
勉強のためです。
しねとかやめてください。
0294237です。2009/08/07(金) 12:43:30ID:ts6lfKVw
http://oshiete1.watch.impress.co.jp/qa4659300.html
これと同じ考え方と考えてよろしいのでしょうか?
0295nobodyさん2009/08/07(金) 12:43:53ID:???
>>293
勉強なら implode() のマニュアル読んだ?
0296237です。2009/08/07(金) 12:54:05ID:ts6lfKVw
読みました
0297nobodyさん2009/08/07(金) 12:54:57ID:???
勉強なら自分で考えろよ
しね
0298nobodyさん2009/08/07(金) 13:09:37ID:???
読んだのなら分かるだろ
読んでないから分からない
0299nobodyさん2009/08/07(金) 13:09:46ID:???
だから実際にプログラムを書いて実行しろよ。
そうすれば一目瞭然だろうが。
どんだけ馬鹿なんだ。
0300nobodyさん2009/08/07(金) 13:16:18ID:???
>>296
実行できる環境は整えたのか?
コード自分で書いて試してみて、ちっとは試行錯誤した上で質問してくれないと。
0301237です。2009/08/07(金) 13:44:29ID:ts6lfKVw
if( isset($_POST['bukken'] and is_array($_POST['bukken']) {
$a = '`'bukken'` in ("' .implode('","' , array_map('mysql_real_escape_string', $_POST[''bukken'']) ). '")';
$sql = "select * from bukken where ID in ('$a')
でどうかな?
0302237です。2009/08/07(金) 13:45:54ID:ts6lfKVw
こんな感じで試してみたいと思います。
ありがとうございました。
0303nobodyさん2009/08/07(金) 13:46:03ID:???
implode() のマニュアルを読んだ上で何が分からなかったの?
0304nobodyさん2009/08/07(金) 13:55:39ID:???
1行目から突っ込みどころ満載なコードだな
0305nobodyさん2009/08/07(金) 13:56:38ID:ts6lfKVw
だめかな?
0306nobodyさん2009/08/07(金) 13:57:17ID:???
上の方で誰かがissetについて指摘してくれてたのにな。
0307nobodyさん2009/08/07(金) 13:59:42ID:???
と思ったら単に閉じてなかっただけか。
失礼。
0308nobodyさん2009/08/07(金) 14:06:05ID:???
書き直してやろうと思ったが2行目が解読不能でやめた
0309nobodyさん2009/08/07(金) 14:14:13ID:???
array_key_exists 使え。
0310nobodyさん2009/08/07(金) 14:14:52ID:???
expression and expressionなんて使い方出来たっけ?(expression=任意の式)
0311nobodyさん2009/08/07(金) 14:44:08ID:???
>>310
http://jp.php.net/manual/ja/language.operators.logical.php
0312nobodyさん2009/08/07(金) 15:05:32ID:???
&&と同じか、でも普通使わないだろう
0313nobodyさん2009/08/07(金) 15:25:00ID:???
え、なんで?
0314nobodyさん2009/08/07(金) 15:33:56ID:???
演算子の優先順位表を読んでも理解できないんだろ
0315nobodyさん2009/08/07(金) 16:46:01ID:???
pythonで
>>> import urllib2
>>> req = urllib2.Request(url='https://localhost/cgi-bin/test.cgi',
... data='This data is passed to stdin of the CGI')
>>> f = urllib2.urlopen(req)
>>> print f.read()
と書くのを、phpで書くとどうなりますか?
0316nobodyさん2009/08/07(金) 16:49:04ID:???
echo 'read the thread title.';
0317nobodyさん2009/08/07(金) 17:09:00ID:???
>>316
pythonスレで聞いてみます
0318nobodyさん2009/08/07(金) 17:19:03ID:???
そんなにID出したくないのか
0319nobodyさん2009/08/07(金) 18:08:28ID:/dIJ9UWZ
初歩的な質問をさせてくださいませ。

1ページ目:名前を入力
2ページ目:情報を入力
3ページ目:情報を入力
4ページ目:1,2,3の情報を出力

フォームとPOSTを使って上記のようなことをしたいです。

1ページ目で入力した数値を4ページ目で受け取りたいのですが、

<form action="2ページ目" method="post">

と記入しないと、submitを押した時に順番にページが表示されません。

そして、4ページ目で

print ( $_POST['name'] );

と入力しても、 actionで指定したページが2ページ目なので、文字を受け取れません。
この場合どうすればよいのでしょうか?

どうぞよろしくお願いします。
0320nobodyさん2009/08/07(金) 18:18:36ID:???
>>319
セッション又はhiddenで受け渡すのが一般的
0321nobodyさん2009/08/07(金) 18:47:36ID:/dIJ9UWZ
>>320さん

ありがとうございます。調べてみます。
0322nobodyさん2009/08/07(金) 23:42:08ID:???
俺はhidden渡しで、変数名なども全部そのまま渡す事が多いな。
入力値検証(バリデート)のロジックが丸ごと使いまわせるし、途中のページを削ったり確認ページとかを増やしたり、などの処理も楽になる。
0323nobodyさん2009/08/08(土) 01:07:58ID:???
失礼します。2つほど質問お願いします。
$_GETでURLから引数渡すときに
http://〜/index.php?a=1&b=2&c=abc
とかやるじゃないですか。その場合の?以降全てを一つの文字列として受け取りたい場合
どうすればよろしいのでしょうか?一つ一つ分けての受け取り方は$_GET['a']とかすればいいのは
わかるのですけれども。


また日本語をc=%E3%82%A2%E3%83%8B%E3%83%A1のようにエンコードも日本語に変換されることなく
エンコードされたまま文字列として受け取りたい場合どうすればよいでしょうか?
一つの引数で受け取った場合$_GET['c']=アニメ とかなってしまってデコードされちゃうようなのですが。

よろしくお願いします。
0324nobodyさん2009/08/08(土) 01:20:37ID:???
すいません自己解決しました
2つとも
$uri = $_SERVER['REQUEST_URI'];
$ary_uri = explode("?",$uri);
$arg = $ary_uri[1];
print $arg;

これで解決できるようですね。お騒がせいたしました
0325nobodyさん2009/08/08(土) 01:25:31ID:???
>>323
$_SERVER["QUERY_STRING"]
ってのもあるぞ。
0326nobodyさん2009/08/08(土) 01:30:45ID:???
http://phpspot.org/blog/archives/2006/04/phpajax_lace.html
このlaceというチャットを設置したいのですが、設定し、設置した後、
ブラウザでそのディレクトリを開くと、「自動転送がループしています」と
表示されます。

これはどうしたらいいのでしょうか?ちなみにfirefoxです。
0327nobodyさん2009/08/08(土) 01:30:48ID:???
そのまま出ry・・なんでもない
0328nobodyさん2009/08/08(土) 01:32:37ID:???
ぶほw一行ですんだwサンクスwww
0329nobodyさん2009/08/08(土) 01:40:52ID:???
>>323
解決してるだろうけどURLエンコードはurlencodeという関数があるよ
0330nobodyさん2009/08/08(土) 01:44:04ID:???
>>329 うす。一つ一つ受け取る場合それやろうかとおもってました。
重ねてサンクス
0331nobodyさん2009/08/09(日) 04:34:18ID:jT8fv9uV
カレンダーを出力する(header関数で)プログラムがあるとします。
カレンダーの中身はDBから引き出すとして、そのDBは情報がUTF-8で保存されていて
そのサイト自体もUTF-8だとします。
ここで、この出力するプログラムを外部サイトに埋め込んでその外部サイトに
出力するとしたら、外部サイトの文字コード(SJIS)に合わせて文字コードを変更する必要があるんでしょうか?
(header関数で制御する部分)
0332nobodyさん2009/08/09(日) 09:50:35ID:???
>>331
やってみたら?
0333nobodyさん2009/08/09(日) 10:51:17ID:jT8fv9uV
>>332
環境づくりをどうやったら良いのかわからないんです。マシン一台しかないし。。
PHP以前の話になってしまいますが、apacheのエンコード設定がUTF-8でも、
ページの文字コードってのは最終的に
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
で決定されるんでしょうか?
それなら同じサーバで1ページだけ、動かせば良いのかな
0334nobodyさん2009/08/09(日) 11:05:21ID:???
HTTPヘッダの Content-Type: */*; charset=* で指定されたエンコーディングが最も優先される

カレンダーを表示するためにはPHPのコードを実行させるのか?
それともiframeやscriptを使って結果だけ読み込ませるのか?
前者なら変換する必要がある
後者なら変換しなくていいがContent-Typeヘッダで明示し、更にscript要素を使う場合はcharset属性も指定する
0335nobodyさん2009/08/09(日) 11:50:49ID:???
header関数でカレンダーを出力って時点でよくわ
0336nobodyさん2009/08/09(日) 12:27:55ID:???
なんで能力無い人に限って「〜とします」とかさも抽象論みたいな言い回し使うんだろうね。
「私の環境は〜です」ってちゃんと言えよ。
■ このスレッドは過去ログ倉庫に格納されています