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

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

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

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 99
http://hibari.2ch.net/test/read.cgi/php/1286938893/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0441nobodyさん2010/11/05(金) 01:21:38ID:FUZYrjbX
え...(´・ω・`)
0442nobodyさん2010/11/05(金) 01:26:38ID:???
PHPでシングルクォート(')内では変数展開されない
俺々PHPとかでPHP本体自体を改造してるなら別だけどね

実際発行されてるクエリは
update tab1 set tag1 = $tag1 where dirpass = $returnpass
のままっていう可能性しかない
0443nobodyさん2010/11/05(金) 01:55:08ID:XnKoTrfJ
たとえば、"ff" って文字を取得して、それを 255 に変換できる組み込み関数ってありました?
あるいは、言語構造でもいいです。
お願いします m(__)m
0444nobodyさん2010/11/05(金) 01:57:44ID:FUZYrjbX
ダブルにしたお 1 no such column ってでたお..
0445nobodyさん2010/11/05(金) 01:58:56ID:???
>>443
hexdec
0446nobodyさん2010/11/05(金) 01:59:15ID:???
あぁ、hexdec ってのがあるんでした。
すいません
04474432010/11/05(金) 02:00:17ID:???
>>445
ありがとうございました (^^)/
0448nobodyさん2010/11/05(金) 02:00:31ID:???
>>443
「16進数 10進数 PHP」あたりでググればすぐにわかることを・・・
0449nobodyさん2010/11/05(金) 02:25:42ID:???
>>444
"update tab1 set `tag1` = '$tag1' where `dirpass` = '$returnpass'"
こんな感じに書き換えてみると良い
まぁ本当はPDOなんだからプレースホルダ使えってのが本音

$sql = 'update tab1 set tag1 = :tag where dirpass = :returnpass ';
$stmt = $dbh->prepare($sql);
$stmt->execute(array(':tag'=>$tag1,':returnpass'=>$returnpass));
0450nobodyさん2010/11/05(金) 02:28:47ID:xucJQOJ5
短縮URLなんかで使われている
0-9a-zA-Zのuniqueなkeyってどうやってつくるのん?
ライブラリがあると思うんだけどキーワードが思いつかない…
0451nobodyさん2010/11/05(金) 02:30:57ID:FUZYrjbX
>>449
書き換えさせていただきました
Connection failed: SQLSTATE[HY000]: General error: 1 SQL logic error or missing database
を吐いたんですけど
0452nobodyさん2010/11/05(金) 09:14:48ID:???
fsockopenでいけると思う
多分。
やったことないけど。
0453nobodyさん2010/11/05(金) 09:48:11ID:???
sqliteでそのエラーでupdate出来ないんでしょ?
パーミッションでしょ。ファイルとフォルダの権限チェック
0454nobodyさん2010/11/05(金) 14:23:13ID:???
>>450
uniqidでどうすか
0455nobodyさん2010/11/05(金) 14:34:50ID:???
>>450
短縮URLは短さが命でしょ
uniqidはちと長いね
0-9a-zA-Zをただ単にランダムにして重複チェックするだけでしょ
長さがどうでもいいとか、0-9a-fまででいいなら>>454の言うようにuniqidでいい
0456nobodyさん2010/11/05(金) 14:49:04ID:FUZYrjbX
>>452>>453
できますた どもでした
0457nobodyさん2010/11/05(金) 15:22:26ID:FUZYrjbX
DBの質問なんですが

id 1 name 伊藤 age 23
id 2 name 田中 age 24
id 3 name 山田 age 33
id 4 name 桜庭 age 43
id 5 name 中村 age 23
を「age」の数値が多い順にソートしたいんですが良い方法ありますか?
あと「伊藤」と「中村」は「age」が一緒なんですけど
その場合はどうなりますか?
0458nobodyさん2010/11/05(金) 15:25:12ID:FUZYrjbX
すいませんDBはsqliteです phpを使います
0459nobodyさん2010/11/05(金) 15:42:36ID:n8qMHMgb
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0460nobodyさん2010/11/05(金) 15:43:17ID:FUZYrjbX
さーせん 誘導どうも
0461nobodyさん2010/11/05(金) 16:13:24ID:???
>>460
DBスレは動きが少なくて死んでるようにもみえるけど質問がないだけで、質問があれば丁寧に答えてくれるよ
0462nobodyさん2010/11/05(金) 16:24:04ID:???
>>461
人任せにせず、自分で該当スレへ行って答えるように。
0463nobodyさん2010/11/05(金) 16:30:43ID:???
>>462
答えるために行くよう後押ししたんだよ
つか今時キリッとか流行んないよ
0464nobodyさん2010/11/05(金) 17:23:00ID:???

          ____
       / \  /\ キリッ
.     / (ー)  (ー)\    <「つか今時キリッとか流行んないよ」
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー?、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

0465nobodyさん2010/11/05(金) 17:27:41ID:???
>>462-465までは駄目なレス例
0466nobodyさん2010/11/05(金) 17:34:14ID:???
眠い
0467nobodyさん2010/11/05(金) 18:17:15ID:???
書き方きもい・・・

$inst = new Task();
$inst->Run();
$html[] = $instance->m_html;
$data[] = $instance->m_data;
0468nobodyさん2010/11/05(金) 18:26:09ID:???
なにそれ
0469nobodyさん2010/11/05(金) 18:29:29ID:???
はいはい、我慢ですよ。ガマン。
0470nobodyさん2010/11/05(金) 19:24:03ID:???
$div = 1;
isset($div["format"]) ← trueになるんだけどこんな動作してたっけ?
var_dump($div);
0471nobodyさん2010/11/05(金) 19:27:04ID:???
ならん
0472nobodyさん2010/11/05(金) 19:36:50ID:???
「こっちにくるなー」が表示されるんだけど・・・
どうしてだろ?

$div = "sss";
if (isset($div["format"])){
echo "こっちにくるなー";

}else{

echo $div;
}
0473nobodyさん2010/11/05(金) 19:39:34ID:???
>左から順に評価を行い、セットされていない変数があった時点で処理を終了します。

まさか$divがあった時点でtrueなのか、それとも間抜けな勘違いしてる?
0474nobodyさん2010/11/05(金) 19:41:20ID:???
$div = 1;
if (isset($div["format"])) {
echo "こっちにくるなー";
}
0475nobodyさん2010/11/05(金) 19:44:05ID:???
$divがStringだとtrue
$divが空文字だとfalse
$divがnullだとfalse
$divがintだとfalse
$divがfloatだとfalse
$divがbooleanだとfalse
0476nobodyさん2010/11/05(金) 19:44:52ID:???
謎は深まるばかりである
0477nobodyさん2010/11/05(金) 19:47:11ID:???
上のとちがうやん。
文字列で[]やったときは違う。
さらにその[]の中を文字列にしたときは、文字列を数値としてみる。
"0"なら0 "1"なら"1" "format"なら なんと 0だ。
04784722010/11/05(金) 19:49:19ID:???
意味わかんね・・・
つまりelseの場合に挙動がおかしのかな


>>474
それはfalseになる
0479nobodyさん2010/11/05(金) 19:50:38ID:???
だからな、
$div = "abc";

$div[0] は "a"
$div[1] は "b"
$div["1"] は "b"

$div["format"] は "a" なのだよ。
04804722010/11/05(金) 19:53:47ID:???
>>479
>$div["format"] は "a" なのだよ。

これがわからない。
どうして$div["format"]が$div[0]になってしまうの?。
0481nobodyさん2010/11/05(金) 19:56:42ID:???
俺は仕様のことは知らないんであれだけどよ、添字が文字列だったら数字にする処理で
失敗したら0にする処理になってんじゃねーの?
04824722010/11/05(金) 19:57:04ID:???
あ、PHPはkeyをハッシュ値にしてあるはずだからハッシュ値が一緒になるとかいう話なのかな
0483nobodyさん2010/11/05(金) 20:03:19ID:???
PHPマニュアル 文字列より、
文字列のオフセット指定で整数型以外の型は整数型に変換されるとのこと。
print (int)"format"; は 0だよ。
04844722010/11/05(金) 20:03:36ID:???
あらー、他のキーにしてもformatと同じ症状がでるわ。
もしかしてPHP関連のファイルが壊れたかな、それともスクリプトの構造によってそうなるバグかな。
0485nobodyさん2010/11/05(金) 20:07:50ID:???
>>484
1こ上をみろ文字列を数値にキャストすると0になるだろ
04864722010/11/05(金) 20:08:41ID:???
>>483
>print (int)"format"; は 0だよ。

色々と文字を入れてみたけど全部0になる・・・

みんな、PHPのバージョンいくつ?

0487nobodyさん2010/11/05(金) 20:09:02ID:???
なんでハッシュを数値にキャストするとかミラクルなことしてんの
0488nobodyさん2010/11/05(金) 20:09:07ID:???
流れ読まずに申し訳ないが、なんでそんなことやってんの?
0489nobodyさん2010/11/05(金) 20:10:40ID:???
>>486
それは挙動として正しい
"12abc"とかやってみ
0490nobodyさん2010/11/05(金) 20:11:44ID:???
ハッシュじゃないから。 文字列の[]は特殊だから、仕様だから。
気持ち悪いとかそういうのはともかく、こうなってるから。PHPのバージョンとか関係ないし。
0491nobodyさん2010/11/05(金) 20:13:36ID:???
ハッシュテーブル$div["format"]のキーformatが内部でintにキャストされてるというのがそもそもおかしい訳だが・・・
0492nobodyさん2010/11/05(金) 20:15:21ID:???
だから文字列の入った変数への[]のアクセス時は違うんだって。 ハッシュテーブルじゃない。
整数でのアクセスのみ。整数でなかったらむりやり整数にしますってこと。
04934722010/11/05(金) 20:15:26ID:???
理解したかも
こういうことらしい

$dat = "string";
if (isset($dat["key"]){
echo "datがstringなら表示できます";
}
0494nobodyさん2010/11/05(金) 20:17:15ID:???
$div = array();
にしとけってことか
0495nobodyさん2010/11/05(金) 20:17:19ID:???
理解してないような気がする・・・
0496nobodyさん2010/11/05(金) 20:21:10ID:???
次期PHPでは文字列への文字単位へのアクセスで[]使うの廃止してもらおう。
$dat{1}でアクセスすればいいんだし。
0497nobodyさん2010/11/05(金) 20:24:02ID:???
他言語のcharAtに相当する関数(メソッド)を用意すればいいのにな
04984722010/11/05(金) 20:26:20ID:???
みんな、ありがと

>>492
夕食の準備であたふたしてたけど今それを読んで理解した!
そういう仕様だったのね

全く気付かなかった・・・
0499nobodyさん2010/11/05(金) 20:28:02ID:???
{}使えって返されて終わるんだな。これはこれでいいが、[ ] は紛らわしくて良くないな。
0500nobodyさん2010/11/05(金) 20:36:36ID:???
String::charAt($div, 4);
PHP風に実装するとこんな感じになるんだろうな
0501nobodyさん2010/11/05(金) 20:48:25ID:7RxO5csW
phpの導入段階で躓きました・・・
まさかこんなところで詰まるとは思わず、ショックです。

【OS名】Win7 64bit
【PHPのバージョン】php-5.2.14-Win32
【連携ソフトウェア】Apache2.2、MySQL Server 5.1
【質問内容】一通りApache、MySQL、phpをインストールしました。
今はこれらの連携を行えるように設定を行っている段階ですが、phpinfo関数を記述したphpファイルの表示がうまくいかず、
ソースがそのまま表示されてしまいます。
<?php
phpinfo();
?>

現時点で行った設定の内容は下記になります。抜けているものがあるのでしょうか?それともまさか、64bitOSではphpは使えないのでしょうか?
いずれもpathは通っている事と、apacheのindex.htmlが見えるところは確認しています。

(1)アパッチのhttp.confに下記内容を追加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
LoadModule php5_module D:\application\php\php5apache2_2.dll
PHPIniDir "D:\application\php"

(2)アパッチのmime.typesに下記内容を追加
application/x-httpd-php php
application/x-httpd-php-source phps

(3)phpのインストールフォルダのphp.ini-recommendedをコピーし、リネームしてphp.infoを作成

(4)phpのインストールフォルダのphp5ts.dllをCドライブのWindows\System32配下にコピー
0502nobodyさん2010/11/05(金) 20:51:24ID:???
>>501
コマンドラインでphp -vは通るかね
0503nobodyさん2010/11/05(金) 20:53:08ID:???
Apacheの再起動が抜けてる
05045012010/11/05(金) 20:56:38ID:???
すみません、書き忘れましたがApache再起動は試しました。
・・・はずなのに、書き込む前に一応もう一度と試してみたら出来た・・・
config変えた後に再起動したんだけど他のタイミングでも必要だったのかなぁ
ご迷惑をおかけしました、ありがとうございます(´・ω・`)

それにしてもphpの最新版DLするところに繋がらなくてもにょる
0505nobodyさん2010/11/05(金) 20:56:54ID:???
PHP 5.3.3 Windows installer をダウンロードしたいのですが、
http://windows.php.net/download/ にアクセスできません。
”404 NOT FOUND”などすら表示されません。
FireFoxの画面には、「接続がタイムアウトしました」と表示されます。
http://www.php.net/downloads.phpには問題なくアクセスできます。)

http://windows.php.net/download/ に つながらないのは、サーバーへのアクセスが多すぎるからでしょうか?
0506nobodyさん2010/11/05(金) 21:01:21ID:???
>>505
>>1
0507nobodyさん2010/11/05(金) 21:01:47ID:???
>>504
やっぱり繋がらないんですね。自分に何か落ち度があるからかも?と思いました
が、落ちているなら仕方ありません。明日にまわします。書き込みありがとうございました。
0508nobodyさん2010/11/05(金) 21:03:42ID:8uc9Kp/O
>>506
失礼しました。上げないのがローカルルールなのかな?と勘違いしていました。
>>504さんの書き込みで納得しましたので、もう大丈夫です。ではでは。
0509nobodyさん2010/11/05(金) 22:32:15ID:???
つーか、PHPスレでそんなこと聞かれてもわかる奴がいるわけないし。
0510nobodyさん2010/11/05(金) 22:32:42ID:???
他のスレでもわからんだろ。
0511nobodyさん2010/11/05(金) 22:39:03ID:???
つーか、もうアクセスできるし。
0512nobodyさん2010/11/05(金) 22:59:19ID:???
えっちいのは嫌いです!!
05135012010/11/05(金) 23:40:13ID:7RxO5csW
>501です。度々申し訳ない・・・
mysqlのDBにアクセスしたいのですが、

<?php
$link = mysql_connect('localhost', 'user', 'pass');
if (!$link) {
die('接続失敗です。'.mysql_error());
}
mysql_close($link);
?>

上記ソースのみを記述したphpファイルを開くとFireFoxだと真っ白、IEだと500エラーとなってしまいます。
MySQLの方は、ソースに記載したアカウントでコンソールから問題なくアクセス出来るのですが・・・
何を疑うべきでしょうか?
とりあえずprint "test";だけ、等の最低限のphpは普通に開けるのですが。
0514nobodyさん2010/11/05(金) 23:44:31ID:???
extension読み込んでないんじゃね
0515nobodyさん2010/11/05(金) 23:50:26ID:???
次の予想 文字化け!
0516nobodyさん2010/11/05(金) 23:55:11ID:???
>>513
そういうときはデバッグコードを埋め込んでどこで止まってるのか確認する
例:
<?php
print "1<br>";
$link = mysql_connect('localhost', 'user', 'pass');
print "2<br>";
if (!$link) {
print "3<br>";
die('接続失敗です。'.mysql_error());
}
print "4<br>";
mysql_close($link);
print "5<br>";
?>
0517nobodyさん2010/11/05(金) 23:57:57ID:???
print 1wwwwwwwwwww
0518nobodyさん2010/11/06(土) 00:10:29ID:???
えっちぃのは嫌いです。
05195012010/11/06(土) 00:18:03ID:pkdvtjmF
>514
ちょっと調べてみたら、php.iniの記述で「extension=php_mysql.dll」がコメントアウトされていたので有効にしてみました。
extension_dirはphpのインストールフォルダのextフォルダを指定してあります。件のphpファイルは相変わらず駄目でしたが・・・

>516
例のソースをそのまま実行してみると1<br>が表示されました。
0520nobodyさん2010/11/06(土) 00:19:05ID:???
>>519
Apache再起動
0521nobodyさん2010/11/06(土) 01:18:10ID:???
あとはPATH確認
0522nobodyさん2010/11/06(土) 08:09:20ID:tYfj4P03
sqliteです
データにある、ある項目が引用されたとき、
そのデータにあるcntというカラムにカウンターみたいなのを付けたいんですが
何か良い方法はありますか?
http://oku.edu.mie-u.ac.jp/~okumura/php/counter-sqlite.php
それっぽいのがあったんですけど 複数のcnt[カラム]ごとに取得したいんですよね
0523nobodyさん2010/11/06(土) 08:12:35ID:???
最近sqliteの質問が多いな
0524nobodyさん2010/11/06(土) 10:27:01ID:???
PEARとかテンプレートエンジンとかフレームワークの話題禁止にしたらもう詰まる部分なんてほとんどないからな
質問が来るのはapacheの設定とDB接続関連ばかり
0525nobodyさん2010/11/06(土) 10:46:23ID:???
だからってそれを許容しているとスレを分けている意味がないわけで
0526nobodyさん2010/11/06(土) 11:04:27ID:???
別に許容してないよ
スレタイ通り、下らない質問を書き込むスレなんだからそれでいいじゃない?
0527nobodyさん2010/11/06(土) 11:32:50ID:6C6SIbFK
$AA["BBB"]=1;//array
$BB="BBB";//string

if($AA[$BB]==1)echo〜;
これでも動くけど最適なのは
$AA[゙゙.$BB.゙゙]の方がいいのかな?
0528nobodyさん2010/11/06(土) 11:37:01ID:???
$AA["BBB"]=1;//array
どこがarrayなんだ?どうみてもintだが・・・
0529nobodyさん2010/11/06(土) 11:49:07ID:6C6SIbFK
$AA=array("BBB"=>1);
$BB="BBB";

if($AA[$BB]==1)echo〜;
これでも動くけど最適なのは
$AA[゙゙.$BB.゙゙]の方がいいのかな?
0530nobodyさん2010/11/06(土) 12:10:53ID:???
$BBを別のところで使ってないなら
わざわざ$AA[$BB]とするためだけに$BBを定義する必要もないし
$BBを""でくくる必要もない
0531nobodyさん2010/11/06(土) 12:21:21ID:???
どこが最適なんだ
0532nobodyさん2010/11/06(土) 12:31:41ID:???
>>529
やっつけすぎる
次回からはちゃんとしたソース出すようにして
0533nobodyさん2010/11/06(土) 13:56:59ID:l3gP+ufG
$array[$i]['id'] = 1;

こういう多次元配列があって、$iは0〜100まであるとします。
この場合、id=なにか という条件で該当する配列を抽出したい場合、
foreachなどで1つずつ調べる方法しかないのでしょうか?
0534nobodyさん2010/11/06(土) 14:03:03ID:???
そうです
0535nobodyさん2010/11/06(土) 14:07:51ID:pKLLoUf3
質問の意味がわかってないんだが
$array[0]['id']
$array[1]['id']

$array[99]['id']
$array[100]['id']
という配列があって?id=なにか?
んー 意味が・・・
0536nobodyさん2010/11/06(土) 14:09:55ID:???
$array[0]['id'] に入ってる数字でしょ
0537nobodyさん2010/11/06(土) 14:11:21ID:???
>>535
たとえば
$array[0]['id']=='ABC';
$array[1]['id']=='BCD';
みたいな感じだったとき
'BCD'を指定して1を導きだしたいってことだろう
言わせんな恥ずかしい
0538nobodyさん2010/11/06(土) 14:14:36ID:???
この場合に標準関数のarray_searchが使えますか?って質問じゃないの?
0539nobodyさん2010/11/06(土) 14:18:03ID:???
User Contributed Notes
には色々載ってるが結局ループささせないといけないのは一緒
0540nobodyさん2010/11/06(土) 14:24:29ID:pKLLoUf3
やっと意味がわかったわ
■ このスレッドは過去ログ倉庫に格納されています