【PHP】下らねぇ質問はID出して書き込みやがれ 102
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2010/12/18(土) 20:07:33ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 101
http://hibari.2ch.net/test/read.cgi/php/1289793607/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0809nobodyさん
2011/01/21(金) 23:21:12ID:???0812nobodyさん
2011/01/21(金) 23:27:02ID:???リアル人脈広げようぜ。
人脈がないなら、もう1桁報酬上げて頼んだほうがいい。
もしくは、これを機会に勉強しまくるんだな。
0814nobodyさん
2011/01/21(金) 23:28:47ID:8ndmGcBV所有ポイントに関しては、purchaseすれば、mygame_ls側のaccountdataテーブル内のreward_pointが正常に減るのです
ただ、購入後にinventoryテーブルにアイテムIDやらが正常に挿入されないという点です。
(要はそのキャラクターの元へアイテムが届いていない)
0815nobodyさん
2011/01/21(金) 23:31:09ID:???>ただ、購入後にinventoryテーブルにアイテムIDやらが正常に挿入されないという点です。
「購入後にinventoryテーブルにアイテムIDやらを挿入」する処理がどのファイルで
行われてるか書いてよ
0816nobodyさん
2011/01/21(金) 23:33:27ID:8ndmGcBVMoney(お金)は、rewards1.phpとspend1.php
それ以外のアイテムは、rewards2.php~9とspend2.php~9に処理記述してます。
問題はたぶん、このファイルのデータベースとの通信
テーブルとの送信命令がマッチしてないことにありそうなんですが詰んでます...
0817nobodyさん
2011/01/21(金) 23:37:35ID:8ndmGcBVそれ以外はinventoryテーブルへデータ送信するようにしてます。
外国に人にも一度聞いてみたのですが、データベースのテーブル構造と
php側の記述がマッチしてない可能性があるといわれました
0819nobodyさん
2011/01/21(金) 23:48:25ID:???http://hibari.2ch.net/test/read.cgi/php/1162147035/l50
0820nobodyさん
2011/01/21(金) 23:55:24ID:???意外とヒアドキュメントとかより便利かも
0821nobodyさん
2011/01/21(金) 23:55:59ID:???ソースは軽く読んだだけなので一般的なバグの例を
1. SQL関連のエラーメッセージが表示されないなら、条件分岐(if文)ではじかれて
そもそもmysql_query()を含む行が実行されていない。
2. SQLのUPDATE文を使うべきところでINSERT文を使っている。
0823nobodyさん
2011/01/22(土) 00:03:35ID:???関数宣言の中に
<?php
<h1><?php echo $Row['category']; ?></h1>
?>
みたいな文が出てくるあたり
0824nobodyさん
2011/01/22(土) 00:04:52ID:???<h1><?php echo $Row['category']; ?></h1>
<?php
↑w
0825nobodyさん
2011/01/22(土) 00:07:39ID:???0826nobodyさん
2011/01/22(土) 00:14:32ID:???0827nobodyさん
2011/01/22(土) 00:15:12ID:???0830nobodyさん
2011/01/22(土) 00:37:59ID:???いいじゃないか。そういう柔軟な書き方もできるということで。
仕様上の問題が無い以上、基本かどうかは個人の思想によるので議論しても無駄。
0834nobodyさん
2011/01/22(土) 08:09:36ID:???inventoryテーブルにINSERTされていないのであれば、spend/spend2から10.phpの41行にエラー表示いれて確認してみたらどうだろ
INSERTやUPDATEしてるとこはエラー処理したほうがいいとおもうけどね。
mysql_query("INSERT INTO inventory VALUES('$uniqueid','{$Row['itemid']}','{$Row['description']}','null','$Character','0','0','0','0','0','{$Row['itemid']}','0')") or die(mysql_error());
0835nobodyさん
2011/01/22(土) 08:28:21ID:???834に追記
一つ前のSELECTしている39-40行もレコードがあるかどうか判断していないので無かったときに41行のINSERTで
エラーが出る可能性もあるかな。
itemUniqueIdがPRIMARY KEY指定されているが、12行で
$uniqueid = rand(900001, 1000000);
しているところが問題かも。重複する可能性あり。
それとinventoryのテーブル見たら全部数値タイプじゃないですか
INSERT文の4個めの'null'は数値じゃないので、これでエラーになってるかも。
0836nobodyさん
2011/01/22(土) 09:02:51ID:???おれんとこでは'null'をINTに入れると0になった
たぶんsql_modeの設定が違うと思う
804のサーバがどうなってるか知らんが
0837nobodyさん
2011/01/22(土) 10:02:58ID:???質問を投げておしまいにする奴って多いな。
0838804
2011/01/22(土) 10:16:41ID:???なんか丸投げしたまま逃げた感じになってしまってすみません orz
ここにいる人たちのレベルでは良い結果は得られそうにないので>>811さんが
言うとおり他所でお金を払って有能な人に質問することにしました。
0839nobodyさん
2011/01/22(土) 10:24:57ID:???丸投げっていうのよ それは
5000円ごときで仕事請け負うか?
会社によっちゃ下手すりゃ1時間ぶんの金額にもならんぞ
自身で勉強する気がないのに「質問」て言葉使うなよ
0840nobodyさん
2011/01/22(土) 10:31:33ID:???その姿勢がおかしい。他人を利用したいだけなのが見え見え、しかも自分が満足する
解答(解決ではなく)が得られなければ他人を批判すると来たものだ。
0841nobodyさん
2011/01/22(土) 10:37:18ID:???0842んさydobon
2011/01/22(土) 10:40:56ID:???>会社によっちゃ下手すりゃ1時間ぶんの金額にもならんぞ
相応の対価が得られるのならいくらでも払うけどここのカスには¥5kで十分でしょ
実際に誰も解決できてないしw
0843nobodyさん
2011/01/22(土) 10:49:54ID:???どんな手を打ったってスキルの高い奴には通用しねーよw
0844nobodyさん
2011/01/22(土) 10:52:39ID:???逆に言えばここのスキルの低い奴には通用するということですねわかります
ところで、通用しないって何が?
0846nobodyさん
2011/01/22(土) 11:03:31ID:???ってことですねわかります
0847nobodyさん
2011/01/22(土) 11:13:20ID:???0848nobodyさん
2011/01/22(土) 11:15:11ID:???0849nobodyさん
2011/01/22(土) 11:16:13ID:???yes, so desu!
0850nobodyさん
2011/01/22(土) 11:22:51ID:???0851nobodyさん
2011/01/22(土) 11:37:27ID:???0853nobodyさん
2011/01/22(土) 11:52:03ID:???0854nobodyさん
2011/01/22(土) 11:53:16ID:???0855nobodyさん
2011/01/22(土) 13:03:31ID:???【PHP】下らねぇ質問はID出さずに書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50
0857nobodyさん
2011/01/22(土) 14:26:08ID:5oOIF2do今掲示板をあれからみたため今から検証していきます
0858nobodyさん
2011/01/22(土) 14:37:25ID:5oOIF2dospend2.phpでは
「Transcation failed:column count doesn't match at row 1」となりました
0859nobodyさん
2011/01/22(土) 14:41:28ID:???0860nobodyさん
2011/01/22(土) 14:52:16ID:5oOIF2do>>859
ほとんどないかもしれません
0861nobodyさん
2011/01/22(土) 15:23:15ID:???だって、こういうコードを書く人だから
function foo(){
?>
<h1>ほげほげ</h1>
<?php
...
}
0862nobodyさん
2011/01/22(土) 15:29:49ID:5oOIF2doです
0863nobodyさん
2011/01/22(土) 15:50:59ID:???>「Transcation failed:column count doesn't match at row 1」となりました
spend2.phpの41行目は
>mysql_query("INSERT INTO inventory VALUES('$uniqueid','{$Row['itemid']}','{$Row['description']}','null','$Character','0','0','1','0','0','{$Row['itemid']}','0')");
でVALUES()には12個の値が入ってる。
実際のinventoryテーブルが12個のカラムで構成されてるか調べてみれば?
0864nobodyさん
2011/01/22(土) 16:01:32ID:5oOIF2do`itemUniqueId` int(11) NOT NULL,`itemId` int(11) NOT NULL,`itemCount` bigint(20) NOT NULL DEFAULT '0',`itemColor` int(11) NOT NULL DEFAULT '0',`itemOwner` int(11) NOT NULL,
`isEquiped` tinyint(1) NOT NULL DEFAULT '0',`isSoulBound` tinyint(1) NOT NULL DEFAULT '0',`slot` int(11) NOT NULL DEFAULT '0',`itemLocation` tinyint(1) DEFAULT '0',`enchant` tinyint(1) DEFAULT '0',
`itemSkin` int(11) NOT NULL DEFAULT '0',`fusionedItem` int(11) NOT NULL DEFAULT '0',`optionalSocket` int(1) NOT NULL DEFAULT '0',`optionalFusionSocket` int(1) NOT NULL DEFAULT '0',
0865nobodyさん
2011/01/22(土) 16:07:32ID:5oOIF2domoney以外の送信はできました
0866nobodyさん
2011/01/22(土) 16:09:13ID:???spend2.phpの41行目のVALUES()の最後にもうひとつ0を追加してみては
1: `itemUniqueId` int(11) NOT NULL,`itemId` int(11) NOT NULL,
2: `itemCount` bigint(20) NOT NULL DEFAULT '0',
3: `itemColor` int(11) NOT NULL DEFAULT '0',
4: `itemOwner` int(11) NOT NULL,
5: `isEquiped` tinyint(1) NOT NULL DEFAULT '0',
6: `isSoulBound` tinyint(1) NOT NULL DEFAULT '0',
7: `slot` int(11) NOT NULL DEFAULT '0',
8: `itemLocation` tinyint(1) DEFAULT '0',
9: `enchant` tinyint(1) DEFAULT '0',
10: `itemSkin` int(11) NOT NULL DEFAULT '0',
11: `fusionedItem` int(11) NOT NULL DEFAULT '0',
12: `optionalSocket` int(1) NOT NULL DEFAULT '0',
13: `optionalFusionSocket` int(1) NOT NULL DEFAULT '0',
0867866
2011/01/22(土) 16:10:01ID:???0868nobodyさん
2011/01/22(土) 16:15:24ID:???phpもmysqlも入ってない環境でさっきからエスパってるから
エラー晒してもらわないと何もわからない(汗
0869nobodyさん
2011/01/22(土) 16:17:43ID:???ほい、money
http://www.youtube.com/watch?v=HWZSz2oo89w
0870nobodyさん
2011/01/22(土) 16:23:17ID:5oOIF2doです 値の入力命令?
0871nobodyさん
2011/01/22(土) 16:27:44ID:???「不正な整数値('')が、カラム'attachedkinahcount'に挿入されようとしている」
ていうような意味だと思う。
恐らくmoneyテーブルのカラム構成と挿入しようとしてる値が一致してない。
0872nobodyさん
2011/01/22(土) 16:31:52ID:???↑のようなINSERT文を↓みたいに書き換えて表示してから、実際のカラム構成と
比べてみるといい
$q = "INSERT INTO inventory VALUES('$uniqueid','{$Row['itemid']}','{$Row['description']}','null','$Character','0','0','1','0','0','{$Row['itemid']}','0')";
echo "Query: $q";
mysql_query($q);
0873nobodyさん
2011/01/22(土) 17:03:08ID:???考えられる原因を
spend1.php
40:$res = mysql_query("SELECT itemid,points FROM voterewards1 WHERE id='{$Reward}'");
42:mysql_query("INSERT INTO mail VALUES('$uniqueid','$Character','Aion Staff','".MAIL_SUBJECT."','".MAIL_BODY."','1','{$Row['itemid']}','{$Row['description']}','1','2010-08-28 02:00:00')");
※42行目で、40行で指定されていないフィールド'description'を参照している
ちなみに'description'はTEXT,'points'はINTで'attachedKinahCountattachedKinahCount'はINT
0874nobodyさん
2011/01/22(土) 17:57:29ID:HPNbEIGIそれに対してPHPがどのようにMySQLとのセッションを
確立するか知りかったんだがorz
MySQLでPHPから
SELECT xxx FROM zzzzzz WHERE id="1" FOR UPDATE
↑
これで次にアップデートするまで、`zzzzzz`.`xxx`に対してロックが行われるとみていいのかな?
あと、ロックかかってる時は他の人からはアクセス不可(エラー)で返るんじゃなくて、
順番待ちとして待機するのかな?
セッションってDB接続ごとに確立されるんだっけ?
A→PHP実行→接続→セッション1が作成
B→PHP実行→接続→セッション2が作成
0875nobodyさん
2011/01/22(土) 18:18:37ID:???0876nobodyさん
2011/01/22(土) 18:37:36ID:???>これで次にアップデートするまで、`zzzzzz`.`xxx`に対してロックが行われるとみていいのかな?
>あと、ロックかかってる時は他の人からはアクセス不可(エラー)で返るんじゃなくて、
>順番待ちとして待機するのかな?
>セッションってDB接続ごとに確立されるんだっけ?
ぜんぶ自分の環境で実行してみればわかるだろ
0879nobodyさん
2011/01/22(土) 20:59:10ID:HPNbEIGIちょっと今仕事中で試せていません
0880nobodyさん
2011/01/22(土) 22:04:02ID:HPNbEIGI楽しいですねこれ
LOCK TABLE hoge WRITE;
これだと別のセッションからhogeテーブル読めなく(待ち状態)になりますが、
これってテーブルごとじゃなく、特定の行や特定のカラムのみってできないんですかね
LOCK TABLE hoge WRITE WHERE id='1'; // id=1の行だけロック
LOCK TABLE `hoge`.`test` WRITE WHERE id='1'; // id=1の行のtestカラムだけロック
てかこれどう考えてもMySQLスレ・・・?
0881nobodyさん
2011/01/22(土) 22:24:00ID:???0882nobodyさん
2011/01/22(土) 22:24:38ID:HPNbEIGI0883nobodyさん
2011/01/22(土) 22:31:52ID:???0884nobodyさん
2011/01/22(土) 23:04:12ID:???0885nobodyさん
2011/01/22(土) 23:04:55ID:???http://hibari.2ch.net/test/read.cgi/db/1295436346/l50
MySQLでのカラムロックについてはググってください。
いろいろと自分で調べて学んだ方が身につきます。
0890nobodyさん
2011/01/23(日) 13:26:25ID:???0891nobodyさん
2011/01/23(日) 13:26:56ID:???0892nobodyさん
2011/01/23(日) 13:27:40ID:???0893nobodyさん
2011/01/23(日) 13:31:00ID:???0894nobodyさん
2011/01/23(日) 13:32:16ID:???0895nobodyさん
2011/01/23(日) 13:54:38ID:???そのプロセスでは書き込みエラーが出るんですか?
0898nobodyさん
2011/01/23(日) 14:04:32ID:???0899nobodyさん
2011/01/23(日) 16:25:22ID:???0900nobodyさん
2011/01/23(日) 17:45:45ID:???【PHP】下らねぇ質問はID出さずに書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50
巣に帰りましょう。
0903nobodyさん
2011/01/23(日) 19:19:17ID:???>ドリームウェーバーを使ってですとselect*fromでも通りましたが
意味わからん。DreamWeaver にはいつから SQLite 処理機能が搭載されたんだ?
何がどう通ったんだろうな。
どうでもいいけど Weaver はウェーバーじゃなくてウィーバーと発音する
>ほかのソフト使う時は空白を注意して入れてみます。ありがとうです!
ほかのソフトっていうか SQL の基礎を学ぶべき。SQLite 云々関係ない。
SQL質疑応答スレ 10問目
http://hibari.2ch.net/test/read.cgi/db/1274791771/
あと PHP もだな。
【PHP】下らねぇ質問はID出して書き込みやがれ 102
http://hibari.2ch.net/test/read.cgi/php/1292670453/
0904nobodyさん
2011/01/23(日) 19:19:42ID:???0906nobodyさん
2011/01/23(日) 19:39:55ID:???0907nobodyさん
2011/01/23(日) 23:26:19ID:???weaveは[wi:v]
0908nobodyさん
2011/01/23(日) 23:48:53ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。