「コントローラー」を含む日記 RSS

はてなキーワード: コントローラーとは

2019-01-21

Wiiみたいな特殊ゲームってハードが手に入らなくなったらどうすりゃいいの?

スーファミとかサターン64プレステみたいにコントローラーボタンが増えたり減ったりしてるだけなゲーム機

何年か後でバーチャルコンソールみたいな公式エミュレーターで動かして売ることが出来るやん?

でもWiiセンサーバーを使うゲームって他のゲーム機では対応出来ないやん?

どうするんやろ

諦めるしかないんかな

2019-01-09

anond:20190109091310

スマホとかPCみたいなゲーム向けのコントローラーを標準装備しないプラットフォームである以上は必然的にそれぐらい単純になるのも仕方ないけどな

ごっつい難易度シミュレーションゲームとか出されても、それこそコンシューマで作れば良いってなるし

2019-01-05

半年 ROM

前置き

インターネットには真偽のわからない情報で溢れてる。それを見分ける能力を身につけるのはなかなか難しいよね。

私もちょっとしかからないし、誰かに聞けば半年 ROM れなんて言われた時期もあったんだ。

半年 ROM れというのは教える気がないのではなくて、見て学ぶのが最も早いよということなんだ。

これは ROM れがどうすればいいのかわからない人たちへの文章だよ。

背景

最近 Switchスマブラ買ったんだ。しかし真面目にやるなら GameCube (GC)コントローラー必須という少し変わったゲームなんだ。

GC っていうのは、2001年に発売されたハードなんだよね。

真面目にというのは少し語弊があって、やるだけなら SwitchJOY コントローラーを使えばいいんだよ。

でもオンライン対戦で勝とうと思ったら GC コントローラーじゃないとなかなか難しい、という感じなんだ。

2001 年に発売されたハードコントローラーが未だに使われてるなんて趣があるね。

でも任天堂コントローラーもう少しどうにかしようとか考えなかったのかな?

GC コンは Switch にはそのままで接続できず、"ニンテンドー ゲームキューブ コントローラ接続タップ" というのが必要になる。

現在公式サイトでは品切れ状態Amazon では転売屋によって 2~3 倍ぐらいの価格で売られてるんだ。

ちょっとひどいね。でも Amazon では非公式の様々な接続タップが売られているんだ。

本題

Amazonレビューはあまり信用すべきでない情報っていうのは、知っているかな?

ここではなぜ信用すべきでないかというのを、私の見つけた範囲で書こうと思うよ。

信用すべきでない理由

1. サクラが高評価をつけることで、商品に対する価値判断を誤らせる

2. そもそもレビューという機能を考える

非公式GC コン (http://u0u1.net/P1kF) のレビューなんだけど、100%評価なんだ。

これを題材に、少しでもインターネットに対する警戒心を身に着けてほしい。

1. サクラが高評価をつけることで、商品に対する価値判断を誤らせる

レビューを細かく見てみよう。なんだかどれも普通レビューに見えるかな?私はちょっと日本語が怪しいところがある気がするよ。

- 私は良い製品を買いました。

- 常に固執する。 この問題解決する最も簡単方法は、

- Nintendo Switch大乱闘スマッシュブラザーズが発売されるようなので、事前準備として購入しました。

なんだか英文日本語に直訳した中高生文章のようだ。でも怪しいだけで証拠がないね。本当に日本語が苦手なだけかもしれないね

レビューを書き込んだ人たちの、他の商品に対するレビューを見てみると面白いかも。他の商品も全部 5 だ。

疑わしきは罰せずだけど、レビュー自体サクラ書き込みと見ていいかもね。販売元も怪しいし、レビューも 5 しかいね

レビューの詳細を確認せずに、全体の評価が良さそうだからこの商品大丈夫判断するのは危ないよ。

2.そもそもレビューという機能を考える

この項目は完全に私の意見なので飛ばしても全然問題ないよ。

レビューを書いたことあるかな?私は全然書かない人なのだけど、レビューってどういうときに書くのだろう。

私は本来レビューってのは、文句を書き込むための場所だと思っているんだ。なぜなら商品問題なく使えるのならそれで満足するからね。

満足してない、不満がある、そういったもの改善するために問題点を指摘するのにレビューというのは機能すると思うんだ。

それなのにレビューが高評価で溢れてる。どういうことなんだろ?

結論?

なんだか取り留めのない文章になってしまって申し訳いね。前置きや背景が無駄に長くて、本題もたいしたこといね

でも ROM れなんて言われても、困惑ちゃう人もいるかも。そういう人たちがどうやって ROM ればいいのか、という参考になればご憧憬の至りだよ。

ここでは Amazonレビューを例にあげたけど、本当に多種多様ROM るというのは正しい行動なんだ。あらゆるパターン体験することで、慧眼が身につくというものだ。

インターネットは恐ろしい場所で、一度情報漏れしまえば誰かがアーカイブを残しているかもしれない。少し自意識過剰では?と言われるぐらいに、自分情報を伴う行動は慎重にしたほうがいいと思うよ。(もちろん、自分以外の情報にもね)

2018-12-31

XBOXエリートコントローラーに騙された!

なんで5000円の下位機種にBluetoothがついてるのに

16000円の上位機種であるエリートコントローラーBluetoothないんだよ!

2018-12-29

New3DSアナログパッド

DLセールをしてたのでそういややってなかったなってのを適当に買って遊ぶ

普段PC接続コントローラーで遊んでるんだが、いやあNew3DSアナログパッド重いな

グイっと押して戻ってくるの重いな

こんなんでよく移動とかする気になるな(煽り

PCアナログパッドが軽過ぎるのだろうか。いやでもこれやりにくくねえ?

2018-12-28

スイッチダイエット始めました

食事制限バランス良く、少なく)してるけど

それプラスで「スイッチフィットボクシング

始めた。


スイッチは高い。

本体付属品ソフト1つで5万はする。

ジョイコンと呼ばれるコントローラーは7000円もする。

まぁそれは置いといて、

フィットボクシングというのの体験版で気に入り

ソフトを購入した。

曲に合わせてボクシングするというシンプルなやつ。

ps3時代には、腕に機械を装着してやるのがあったけど

今回は持ってパンチするのだ。

ジョイコンはWiiとかと違い軽いからやりやすい。

体験版3日やり、筋肉痛になり

(何故かデータ引き継げないまま)

ソフトを購入して2日。筋肉痛

デイリーモードと、フリーモードがあり

デイリー勝手に決めてくれたのをやる。

フリーモードには対戦とか二人でやるのがある。

もちろん、一人でやるのもある。

ダイエットしたい部位、時間選択するだけで

勝手プログラムを組んでくれる。

ずぼらな私には最高のプログラムですね。はい

まだ、痩せたとかはないけど

お通じよくなった。

腹筋、二の腕背中、すべてが筋肉痛

このまま来年も頑張って痩せるぞ!!

anond:20181228140420

横だけど、スイッチ高いよ~。

本体買って、スマブラ買って付属品そろえるだけで5万した。

コントローラーとかまだ買ってないのにコレ。高い。

ジョイコン買うのに7000円だよ?高いよ。

2018-12-26

ゲームコントローラー、高すぎない?

もっと安かったよね。

PS4コントローラーは6000円程度するし、

任天堂スイッチコントローラーは9000円するじゃん。

高い。

2018-12-25

anond:20181225113604

プレステコントローラー「呼んだ?」

 

はっきりやりたいなら原語表記すればいいよ、PとBそんなに間違えないからね

2018-12-22

anond:20181222160634

任天堂って本体安くて付属品が高いイメージ

プレステは逆のイメージ本体が高くて付属品が安い。

たぶん、子供も買えるように本体は安くしておいて付属品で回収してるんだと思った。

プレステに比べて複数人プレイゲームが多いから、コントローラー高くした方が儲かるしね。

switch高い 中流階級向けの娯楽だ

マルチプレイやりたいかコントローラーもう一個買おうとしたんだけど8000円する、、、

高過ぎじゃないか

2018-12-16

anond:20181216172641

ゲーム遊ぶリテラシーって

一回死んだら次の人にコントローラー回すとかそういう話しか思い浮かばないが

2018-12-15

スマブラ初心者には楽しめない」と言う人へ

大乱闘スマッシュブラザーズスマブラ)の新作が最近発売され、

ツイッターでは発売前後にこのような意見をいくつか見かけた。

スマブラ初心者向けではない」

初心者ボコられるだけの楽しくないゲーム

おそらく、このような意見の持ち主の多くは、

友人宅でスマブラプレイし、説明もそこそこに(あるいは説明なしで)アイテムなし終点連行され、

ボコられた上で「負けた人が次の人に交代」のルールで交代させられ、

次の番が回ってくるまでその辺にあったマンガを読む。

自分の番が来たら来たで、上記の繰り返し。

そんな過去を持っているんじゃなかろうか。




そうじゃないんだ。

スマブラはそういうゲームじゃないんだ。

そういった経験で、スマブラが嫌いになってしまったんだとしたら、それはすごく勿体ない。

スマブラ本来格ゲーじゃなくて、パーティーゲームなんだ。

一番強い人が勝ちなんじゃない。

一番楽しんだ人が勝ちなんだ。

パーティーをやろうよ。

スマブラSPでは80弱のキャラ、100を超えるステージ、80以上のアイテムといろんなルールがある。

遊び方は無限にあるんだ。

アイテムなし終点の遊び方しかやらないのは勿体ない。

大学生社会人になると中々都合がつかないのもわかるけど、

ポテチ大袋と、お茶コーラペットボトル、人数分のコントローラーを用意して、

机を囲んで、ゲラゲラ笑いながら、パーティーをやろうよ。

全員キャプテンファルコンで、ファルコンパンチとファルコンキック以外使用禁止乱闘をやろうよ。

アイテムモンスターボールのみとても多いにして、直接攻撃と反射・吸収技禁止ポケモンバトルをやろうよ。

ボム兵を投げて、ネスバットで打ち返す野球をやろうよ。

ハンデキャップ付けて最強にしたCPLv9を相手に、プレイヤー全員をチームにして挑む討伐戦をやろうよ。

ビッグブルーで、ウサギずきんを被ってひたすら右に向かって走り続けようよ。

神殿の下の方で、ダメージ200%を超えても全然死なない吹っ飛ばし合いをしようよ。

勝ち負けなんて些細なことなんか気にせず、笑いすぎて腹が捩れるような遊びをしようよ。

スマブラは、そういう楽しみ方がいくらでもできるゲームなんだ。


もちろん、いろんな遊び方があるということは、

「一番強いヤツが勝ち」

というのもまた1つの遊び方だ。

それは否定しない。

そして、その遊び方を極めたいのであれば、話は別。

長く続いているシリーズ宿命だけど、覚えることは山ほどあるし、

操作一朝一夕に身に着くものじゃない。

上級者との差は中々埋まらない、厳しい道になる。

そこはそれなりの覚悟を持って挑むしかないし、文句を言わないで欲しい。

他人と競い合うゲームなら、なんだってそうだ。

純粋格ゲーも、シューティング音ゲースコアで競う場合も、TCGポケモンバトルだってそう。

スマブラだけじゃない。


ここまで読んでくれた人に、最後に1つアドバイス

ポテチを食べる時はそのままだとコントローラーが油だらけになってしまうので、

アルコールを含むウェットティッシュを手拭きとして用意するといいぞ。もしくは割り箸を用意しよう。

あるいは、個包装のせんべいチョコレートなどの手が汚れないものを食べよう。


追記

anond:20181215233750

この記事ではキャラ解放のことについては一言も触れてなかったんだけども。

キャラが事前に全て公開されていて、夢の共演を売りの1つとしている

・なのでDXの頃のような、遊んでたら突然「挑戦者が現れました!」のワクワク感はあまり無い

・売りとされているはずの様々なキャラをなかなか使わせてもらえないイライラ(ただし灯火で敵としては散々出てくる)

辺りがやっぱ原因だろうね

「敵が強すぎる」のは確かにその通りだけど、挑戦3回目くらいから見てわかるレベルで敵の動きが鈍くなってたから、

1回や2回で勝てないからと言って文句言わなくても、と思う。

ただ、挑戦者の間はいつでも再挑戦出来るようにして欲しかった

2018-12-14

ゲームをほぼ触らずに生きてきたけどスマブラやってみたい

まれ23年経ったが、恥ずかしながらほとんど家庭用ゲームしたことがない。

ゲームが嫌いなわけではない。むしろ大好きだ。

ゲームしたら勉強しなくなるから、という父の意見により幼少期はゲームを与えられなかった。我が家は変な宗教に入信しているわけはない。父の独断である

周りの子達を見ると、やれ家にゲームキューブがある、アドバンスがある、SPがある、PS2がある、PSPがある…

人達に「混ぜてくれ」といって友達の家に遊びに行ったりしていた。DSが出るまでは。

DSが出ると、友人達DSを持ち寄り通信対戦で遊んでいた。もちろん私は買ってもらえるはずもない。DS持ってないのになぜかいるやつ、と言われている気分だった。もちろんそんなこと言われてはいない。ただの被害妄想である。そんなことを思っていたため、友人と遊ぶことからも足が遠のいた。

先述したとおりゲーム機は与えられなかった。それなのにパソコンは与えられたので時間があればMMOをするようになった。しかし父はそれすら気に入らなかったようで、ネット環境制限された。ネット環境のないパソコンなど子どもにとってはただの金属の塊である

 そんな私が何で遊ぶようになったかトランプだ。外に遊びにも行かず家で一人でトランプで遊んでいる姿は端から見たら精神異常者である

 中学生になったら運動部所属したこともあり、ゲームから気がそれていたのは幸いだった。

 高校生になり、スマホを与えられてしまった。ゲーム実況動画ゲームをしたような気分になった。ソシャゲが楽しかった。

 就職後しばらく経って、モンスターハンターワールドが発表された。

 あ、PS4買ってみようかな、と思った。遠方にいる友人も買うと言っていた。人生で初めて自分ゲーム機で友達と遊ぶことができる喜びを想像して心が躍った。

 家電量販店に行き、緊張しながら「ぴ…PS4ください…」と伝え、念願のゲーム機を手に入れた。手渡された後、掲げて帰りたかったくらいだ。さすがにやらなかったが。

 わくわくしながらセッティングをして、コントローラーを握ったときのあの気持ち!幼少期の呪いから解放されたような気分だった。

 いざ、モンハンをやってみた。結論からいうとあまり楽しくなかった。というか、ゲーム慣れしていない私が足を引っ張りすぎて申し訳なくなった。もちろん練習した。ゲーム内にあるコマンドだって見た。トレーニングエリア一生懸命練習した。

 でも実践になると攻撃は当たらないし、友人達コマンド表にない技をばんばん打っている。弱点属性?が何なのかもよくわからなかった。どこに書いてあるんだ。

 結局歴戦キリンで詰んでいる。

 ダークソウルができればだいたい何でも心が折れないと聞いて3を買ってみたが深淵監視者が倒せなくて詰んでいる。もしかしなくても私はゲームが下手なのでは?

 そんな折、スマブラSPが発売されると聞いた。

 今度こそワイワイ遊べるのでは、と思ったりもしたがどうやらCMで○○参戦!といっている割にキャラ解放しなければ任意キャラが選べないと聞き、尻込みしてしまう。しかCPUも強いと聞く。今までのものプレイしてきた人向けという話まで聞く。実際のところどうなんだ。ゲームがうまくなくて、過去作を触ったことがなくても楽しめそうなのか。教えてくれ。

2018-12-12

ゲームコントローラーの話になると度々上がるのがGCコントローラーだけど、アレってそんなによかったか

当時GCで遊んでたけど、コントローラー的には微妙な使いづらさがあって「慣れ」はしたけど「馴染み」はしなかったな。

遊んだゲームによって評価は変わるのかも知れないけど、何が使いづらいってLRトリガーが全く慣れなくて違和感強かったな。なんというか押し込み辛いし、最後まで押し込むのも無駄な力が入る。

あとCスティックも使いづらかった。あれコントロールスティックと違って滑る。だから滑らないようにしようとすると無駄な力が入って、操作に気を使い疲れる。

そういう事もあってか、GCコントローラー最高論は未だに個人的に納得がいってない。

任天堂コントローラーだと64のコントローラーが一番使いやすくて手に馴染んだな。

左側の方向キー全く使う機会なかったけど。

2018-12-11

月収30万円+ボーナス2回が欲しい

増田では年収高い人が多いので羨ましくなっている現在絶望の30台前半の男です。

そして非正規雇用です。高卒です。

pc(windows)のユーザーサポート業務ばかりやってきました。

pcキッティングや初期セットアップは得意です。

プログラミングはできません。

(phpMySQL大分昔に触れただけです)

HTMLCSSちょっとだけ。wordpressちょっと使える程度です。

サーバードメインコントローラーやらwsusやらがなんちゃってレベルです。

windows10の大型アップデート動作検証などやっています

動画編集aviutlで少しできるくらいです。

ざっくり書きました。

こんなんですが現在地方年収260万円です。

転職したら収入が上がったなどと景気のいい話を聞きますが、私のような人材では難しいと思っています

関東ではそんなに仕事があるのでしょうか。

率直な感想を聞きたいです。

2018-12-06

なんでSwitchって売れてんの?

子供クリスマスプレゼントスイッチ買おうと思うんだけど、

コントローラーも小さくて使いづらそうだし、別売りのも高いし。

ソフトもあまりないじゃないですか

ちなみに私はプレステ2以降ゲームをやってない。

2018-11-27

anond:20181127152350

無理に作り出す必要はないのはその通りですがメディアに合わせることで面白い表現が生まれることもあります

ゲーム機を例にするとPSコントローラージョイスティック搭載に合わせてジョイスティック操作するゲームが大量に出た記憶があります、『ぐるぐる回す』ことに疲れるものから面白いものまでたくさんありましたが、面白ければ「そのハードならではのゲーム体験面白くなければ「無理に作り出す必要はない」と分類するのもどうなのかなと思います

2018-11-15

イカゲームと、依存症の恐ろしさと、私

自分ゲーム依存のようになった話をしてみようと思う。

そのゲームソフトハードを購入したのは2017年の後半。

ゲームハード機を買うのは約10年ぶりだった。

とりあえず人気のゲームをいくつか購入した。

その中には2017年ベストゲームと呼ばれているオープンワールドゲームもある。

特に私がハマったのはイカシューティングゲームの2作目。

2017年にはPUBGなどオンライン対戦型のTPS系も少しプレイし始めていたので、特に気に入った。

プレイするのは仕事が終わった夜間と休日だったが、ゲーム性質上、3分〜5分で1試合が終わる仕様なのでゲームテンポが良い。

イカゲームの開発会社はどの作品でも小学生の子供でもプレイできるようなゲーム作りをしているので、飽きずにプレイできる様に設計しているので試合時間を短くしているのだと思う。(PUBGは生き残れば1試合30分はかかる。)

また、PUBGとの違いはウデマエと呼ばれる強さのランクがあり、勝てば上がり負ければ下がるランクづけシステムがあることで、負けた時の悔しさが大きく、ウデマエをあげるために必死プレイし続けていった。

その後、生活に思わぬ影響が出てしまう。

仕事が終わった夜間にプレイしていたのだが、ゲームテンポが良いためかやめるタイミングがつかめ

ずるずると夜遅く、朝方までプレイするようになってしまった。

寝不足仕事をするようになった。

仕事ミスが増えはじめ、パフォーマンスが落ちて行ってしまった。

仕事関係者にも「体調でも悪いの?」と聞かれたこともあるが、ゲームのせいなんて言える訳もなく、適当ごまかした回答をした。

それでもやめることはできず、続けていると今後は体への影響も出て来た。

病院精神科ではない)に行き薬を貰い、ある程度回復したが、それでもプレイをやめることはできなくなっていた。

やめなければまた病気悪化するかもしれないという恐怖よりも体が勝手ゲームに向かってプレイするようになっていた。

薄々感じていたが、病気になってもプレイがやめられなかったことで

自分もしかして依存症なのではないか

と思う様になった。

しかし、依存症は簡単にやめられるものではなかった。

そもそも、そのゲームプレイして楽しいという気持ちはそれほどなかったのである

ただ、ウデマエをあげたいという気持ちだけでプレイを続けていた。

自分意識の中でそのゲームは「勝った喜びよりも負けてイライラする方が遥かに大きいゲーム」という印象だったからだ。

イライラが大きいならやめればいいだけなのだが、なぜか続けてしまう。

しかしたら大手ゲーム会社は皆このような「ハマる」ノウハウがあるのかもしれないが、頭ではデメリット理解しつつもやめられないことが不思議だった。

世にある依存症といえば、酒・タバコギャンブル・買い物・SNSなどだが、私はこれまでそれらを体験しても依存レベルでハマるという段階にはいたらなかった。

スマホソシャゲプレイしたことはあるが、ガチャを含めて課金したこともなく、依存症というレベルにはならなかった。

からこそ自分ゲーム依存になるなんて全く予想もしていなかった。

数ヶ月後、依存症を克服できるような状況の変化が起こった。

コントローラーが壊れたのだ。

私は面倒くさがりで節約家なので、コントローラーが壊れても買うのが面倒でもったいないと思い、プレイ自体をやめざるを得ない状況になった。(元々はゲームハード機とソフトもある程度プレイしたら売るつもりだった)

そして私はゲームをやめることができたのだ。

コントローラーが壊れただけで、依存から抜け出すという何て滑稽な奴だと思われるかもしれないが、事実プレイをしなくなった。

ただ、コントローラーを買いたいという気持ちわずかにあるので依存から完全に抜け出せたのかわからないが、

現在プレイをやめたことにより、なぜ私が依存状態になったのか冷静に振り返ることができるようになった。

これまでの人生、様々なゲームプレイしたもの生活には影響が起きず、今回イカゲームだけはやめられずに危険状態になったのか。

依存基本的に脳の報酬系への影響により起こると言われているところと、このゲーム仕様を合わせて推測すると

1) 1試合が短く、ゲームテンポが早いので簡単に脳への刺激が得られる

ゲームスイッチONにしてすぐオンライン対戦が始まり勝敗も5分で出るという手軽さは今までハマったゲームにはなかった。

2) 運次第で勝ったり負けたりするガチャ要素

オンラインマッチングで4vs4のチーム戦という仕様で味方と会話もできないので、どんな味方とマッチングするか運で勝敗が大きく分かれる仕様になっていることで

→ 運良く強い味方が来たり、敵がたまたま弱くて勝利したとき脳内が、モバイルゲームガチャでたまに当たりを引くのと同じ快楽が得られることで、やめられなくなったのかもしれない

ガチャを何度も引き続けてしまうのと同じ状況に陥っているのかもしれない。

→ 勝つために運よりも立ち回りやプレイ技術必要なPUBGにハマらなかったのは運要素が小さいからかもしれない。

(PUBGでも物資アンチの運という要素もあるが、ある程度立ち回りでカバーできるので今回ハマったゲームほど運要素は必要ない)

3) 連勝した後はほぼ必ず連敗するシステムなので、勝ちすぎて飽きないようにできている

ガチャ要素の部分と似ているが、勝ち過ぎず負けすぎずというようにマッチングの調整を行っているように思える。

子供ターゲットゲームなので飽きない様な仕組みを作れているとも言える。

4) プレイヤーをランク付けすることで、上を目指したくなる

ソシャゲ課金と同じでランクを上げたいという射幸心を煽られると人間はなかなかやめられない。

今回学んだ事

自分には依存症になんてならないと思っていても依存する事はある、とても身近な病気であるということ

・一度患ってしまうと理性で依存から抜け出すのはかなり難しいということ

依存症になったと思ったら病院へすぐに行ったり、環境を変えるべき

自分コントローラーが壊れるという外部環境の変化で運良く抜け出せたが、もし酒タバコギャンブルならそうもいかなかっただろう)

ゲーム動画などのエンタメは以下に脳から快楽物質を出させるので、今後もゲーム依存ネット依存はより社会的問題になるだろう

2018-11-14

anond:20181114100744

猫に2pコントローラー持たせて…みたいなことかと解釈して「それは難しいやろ…」と思ったが

ゲーム内で猫がお供についてくるみたいな話か

トロとか?

2018-11-12

マウスホイールタッチパネル

Webページを読む時、下にスクロールする場合操作

マウスホイール:指をマウスホイールに置いて、指を引く。

タッチパネル:指をタッチパッドに置いて、前に押す。

で全く逆の動作をする。

なのに、マウスホイールタッチパネル上下逆に誤操作したことがない。

やっぱり頭の中でマウスホイールタッチパネルコントローラーとして別物と認識しているのだろうか。

 

でも、昔、マウスホイールタッチパネルを組み合わせたような、マジックマウスを使ってた時も上下逆に動作したことがない。

2018-11-10

増田プログラマー養成講座 その20 SQLデータの削除

前回は、SQLデータ更新をやりました。

今回は、SQLデータの削除をやりましょう。

 

メッセージの削除

基本は、同じなので前回やった更新処理をちょっと変えれば削除もすぐできます

 

投稿されたメッセージを削除する機能を、Webページに付けてみよう。

 

削除ページにジャンプするリンク

前々回作ったメッセージの一覧の中に、削除ページにジャンプするリンクも入れておいた。

<td><a href="welcome/delete/<?php echo $item['id']; ?>">削除</a></td>

という1行が削除ページにジャンプするためのリンクになる。

ブラウザーHTMLソースを見ると、ここが以下のようなHTMLに書き換わってる。

<td><a href="welcome/delete/2">削除</a></td>

これは「メッセージID番号が2のメッセージ」を削除対象にして、削除ページにジャンプする。

 

Controllerの改造

ユーザーが「http://localhost/waf/welcome/delete/2」というURLで、削除ページにアクセスしたら、コントローラーで「2」を受け取って使いたい。

CodeIgniterでは、URL文字列を解析して、使うことができる。

以下のようにコントローラーを改造してみよう。

 

// 削除画面

public function delete($id = '')

{

 echo "ID=".$id;

 $this->load->view('chat_delete');

}

 

Controllerの改造の解説

delete()メソッド引数で、URL中の「2」の部分を受け取れる。

これは前回の編集ページ(更新の処理)と同じ。

「$id = $this->uri->segment(3);」でも受け取れる。

 

Viewの改造

削除ページでは、確認する質問を入れてみよう。

ユーザーに「本当に削除しますか?」みたいな注意喚起をしておきたい。

 

ファイルの内容を以下のように編集する。

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>削除</h2>

  <p>以下のメッセージを削除しますか?</p>

  <form action="welcome/delete" method="post" accept-charset="utf-8">

   <?php if (isset($talk)): ?>

   <p style="background-color:lightpink"><?php echo $talk['message']; ?></p>

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="delete">

   <?php else: ?>

   <p>※該当するメッセージがありません。(または削除済です。)</p>

   <?php endif;?>

   <button>削除する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Viewの改造の解説

<p style="background-color:lightpink"><?php echo $talk['message']; ?></p>

削除するメッセージを色付きで強調して、ユーザー確認してもらう。

 

<input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

コントローラー削除対象メッセージID番号を送るため、inputタグの「type="hidden"」でメッセージID番号を仕込んでおく。

 

Controllerの改造

ファイルの内容を以下のように編集する。

// 削除画面

public function delete($id = '')

{

 $id = $id ? $id : $this->input->post('id');

 $action = $this->input->post('action');

 if ($action == 'delete') {

  $this->chat_model->delete_message($id);

 }

 $data['talk'] = $this->chat_model->read_message_by_id($id);

 $this->load->view('chat_delete', $data);

}

 

Controllerの改造の解説

やってることは、前回のデータ更新場合とほぼ同じ。

$this->chat_model->delete_message($id);

で、モデルに用意したデータ削除用メソッドを呼び出しているだけ。

次は、モデルdelete_message()メソッドを用意しよう。

 

Modelの改造

ファイルの内容を以下のように編集する。

// Delete

public function delete_message($id = 0)

{

 $sql = "DELETE FROM talk WHERE id = ?";

 $param = array($id);

 $this->db->query($sql, $param);

 return $this->db->affected_rows();

}

 

Modelの改造の解説

SQLの「DELETE」を使えば、指定したレコード(1件分のデータ)を削除できる。

DELETE FROM talk WHERE id = ?」で、talkテーブルmessageid指定して削除している。

 

データを削除した後の挙動は、メッセージID番号がなくなるので、削除ページに表示できるメッセージデータがなくなる。

(例)id=2のデータを削除したら、SQLで「SELECT * FROM talk WHERE id = 2」を取得しても、空のデータデータがない状態

その場合は、

<p>※該当するメッセージがありません。(または削除済です。)</p>

と表示させてる。

 

まとめ

以上で、SQLの「DELETE」を使ったデータの削除ができた。

長々と説明したが、今回の大事な点は、SQLの「DELETE」の使い方だ。

 

以上で、MVCフレームワークを使ったOOPの使い方とSQLの使い方を見てきた。

SQLSQLだけで説明したほうが良かったね!MVCフレームワーク説明SQL説明が混在すると要点が分かりづらくなる?)

ちょっと失敗だったかも。m(__)m)

 

次回は、データベースの設計について学んでみよう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベースの参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)

anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得

anond:20181110120715 増田プログラマー養成講座 その19 SQLデータ更新

anond:20181110182445 増田プログラマー養成講座 その20 SQLデータの削除 ←★今ここ★

anond:20181111205255 増田プログラマー養成講座 その21 データベース設計 (1)要件定義

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

増田プログラマー養成講座 その19 SQLデータ更新

前回は、Webアプリの骨組み(スケルトン)に、SQLデータの追加と取得をやりました。

今回は、SQLデータ更新をやりましょう。

 

メッセージ更新

 

編集ページにジャンプするリンク

前回作ったメッセージ一覧に、[編集]のリンクも入れておいた。

<td><a href="welcome/update/<?php echo $item['id']; ?>">編集</a></td>

という1行の部分。

[編集]をクリックすると、編集用ページにジャンプする。

ブラウザーHTMLソースを見ると、以下のようなHTMLになってるはず。

<td><a href="welcome/update/2">編集</a></td>

これは「メッセージID番号が2」を対象にして、編集ページにジャンプすることを意味する。

 

Controllerの改造

編集用ページのコントローラーを作ろう。

「http://localhost/waf/welcome/update/2」というURL編集ページにアクセスしたら、メッセージID番号の「2」を受け取れるようにしたい。

URL文字列を処理して「2」を取り出せるようにしよう。

 

// 更新画面

public function update($id = '')

{

 echo "ID=".$id;

 $this->load->view('chat_update');

}

 

CodeIgniterでは、URLから文字列を取り出す方法がいくつか用意されている。

  1. 「update($id = '')」のようにメソッド引数「$id」を用意すれば、「2」の部分を取り出せる。
  2. 引数を使う以外の方法も用意されていて、「$id = $this->uri->segment(3);」のように書けば、「2」の部分を取り出せる。

// 更新画面

public function update()

{

 $id = $this->uri->segment(3);

 echo "<hr> ID=".$id;

 $this->load->view('chat_update');

}

 

Controllerの改造の解説

CodeIgniterで、URL文字列から特定部分の文字列を取り出す方法を見ておこう。

 

例えば、「http://localhost/waf/welcome/update/aaa/bbb/ccc」というURLアクセスしたときCodeIgniterではURL中の「aaa」「bbb」「ccc」という部分は、以下のようにして取り出せる。

$seg1 = $this->uri->segment(1); // → 1番目のURL文字列:「welcome」=コントローラークラス

$seg2 = $this->uri->segment(2); // → 2番目のURL文字列:「update」=クラスの中のメソッド

$seg3 = $this->uri->segment(3); // → 3番目のURL文字列:「aaa」の部分

$seg4 = $this->uri->segment(4); // → 4番目のURL文字列:「bbb」の部分

$seg5 = $this->uri->segment(5); // → 5番目のURL文字列:「ccc」の部分

URLを「/」で区切って、base_url(http://localhost/waf/)の次から順番に、1番目のURL文字列、2番目のURL文字列、3番目のURL文字列、…とsegment()メソッドで順番を指定すれば取得できる。

 

Modelの改造

データベースでメッセージID指定して、メッセージを取り出す機能を用意しよう。

 

ファイルに以下のメソッドを追加する。

// Read by Id

public function read_message_by_id($id = 0)

{

 $sql = "SELECT * FROM talk WHERE id = ?";

 $param = array($id);

 $query = $this->db->query($sql, $param);

 return $query->row_array();

}

 

Modelの改造の解説

SQLの「WHERE」句で、絞り込む条件を指定できる。

 

SELECT * FROM talk WHERE id = ?

「WHERE id = 2」とすれば、メッセージID番号が2のメッセージデータが「talkテーブルから取り出せる。

もし該当するデータがなければ、返されるデータは空になる。(データが返ってこない。)

 

CodeIgniterの「row_array()」は、1件分のデータ配列の形にして返すメソッドだ。

 

Viewの改造

ファイルの内容を以下のように編集する。

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

  <p>メッセージを変更して「更新する」ボタンを押してください。</p>

  <form action="welcome/update" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <?php if (isset($talk)): ?>

   <input type="text" name="message" value="<?php echo $talk['message']; ?>">

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="update">

   <?php else: ?>

   <p>※該当するメッセージがありません。</p>

   <?php endif;?>

   <button>更新する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Viewの改造の解説

データベースから取り出した1件分のメッセージを表示する部分を追加した。

<input type="text" name="message" value="<?php echo $talk['message']; ?>">

の「<?php echo $talk['message']; ?>」という部分だ。

これで変更したいメッセージの本文を表示できる。

 

あと、編集したメッセージWebサーバーに送信できるように、Formタグ送信ボタン(「更新する」の部分)も追加した。

このときメッセージID番号も送信できるように、

<input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

という1行も仕込んである

 

Controllerの改造

ファイルの内容を以下のように編集する。

// 更新画面

public function update($id = '')

{

 $id = $id ? $id : $this->input->post('id'); // id -> segment or post

 $action = $this->input->post('action');

 if ($action == 'update') {

  $message = $this->input->post('message');

  $this->chat_model->update_message($id, $message);

 }

 $data['talk'] = $this->chat_model->read_message_by_id($id);

 $this->load->view('chat_update', $data);

}

 

Controllerの改造の解説

メッセージID番号を指定して、データベースから取り出し、Viewに渡すデータを用意している。

$data['talk'] = $this->chat_model->read_message_by_id($id);

 

ユーザーメッセージ編集をしてWebサーバーに送信したら、データ更新する指示を出す部分も追加した。

$action = $this->input->post('action');

if ($action == 'update') {

 $message = $this->input->post('message');

 $this->chat_model->update_message($id, $message);

}

モデルにupdate_message()メソッドを用意して、$idと$messageを渡せば、該当データ更新するようにしたい。

次は、モデルでupdate_message()メソッドを用意しよう。

 

Modelの改造

ファイルの内容を以下のように編集する。

// Update

public function update_message($id = 0, $message = '')

{

 $sql = "UPDATE talk SET message = ? WHERE id = ?";

 $param = array($message, $id);

 $this->db->query($sql, $param);

 return $this->db->affected_rows();

}

 

Modelの改造の解説

SQLの「UPDATE」を使えば、指定したレコード(1件分のデータ)を更新できる。

「UPDATE talk SET message = ? WHERE id = ?」で、talkテーブルmessageid指定して更新している。

 

CodeIgniterの「affected_rows()」メソッドは、更新した行数を返す。=成功なら1行、失敗なら0行となる。

 

補足

コントローラーの「$id = $id ? $id : $this->input->post('id');」という行は、$idの受け取り方が2パターンあるので、それに対応している。

編集ページの表示で、1回目の表示と、2回目以降の表示で、$idの受け渡し方が変わっている。

  • 1回目:URLに埋め込まれID番号をupdate($id = '')の引数$idで受け取っている。($this->uri->segment(3)で受け取るのと同じ)
  • 2回目以降:Formタグで送られてきた$idを$this->input->post('id')で受け取っている。

URLに埋め込む方法上記の1回目のような方法)は、ユーザー勝手に値をいじれるので、基本的には使わない方が良い。

 

まとめ

以上で、SQLの「UPDATE」を使った、データ更新ができた。

長々と説明したが、今回の大事な点は、SQLの「UPDATE」の使い方だ。

CodeIgniterの使い方や、Webサイトの作り方(FormタグなどのHTML知識)は、オマケ程度に見ておいて欲しい。

 

次回は、データを削除するSQLDELETE」の使い方を見てみよう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベースの参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)

anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得

anond:20181110120715 増田プログラマー養成講座 その19 SQLデータ更新 ←★今ここ★

anond:20181110182445 増田プログラマー養成講座 その20 SQLデータの削除

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん