うめぼしジョイスティック - ivoice

CakePHP、JavaScript、jQuery等のプログラミングについて書いていきます 思考は、うめぼしのように硬く、そして柔らかく。

2015-01-01から1年間の記事一覧

CakePHP2.xでsaveをしてcreatedに日付時間データが入らない場合はカラムの照合順序を見なおそう

このように、種別をtimestamp、 属性をon update CURRENT_TIMESTAMP、 デフォルト値をCURRENT_TIMESTAMP、 その他をON UPDATE CURRENT_TIMESTAMP のように設定しましょう! 特に、デフォルト値がCURRENT_TIMESTAMPになっていることが重要です。 これで、save…

AclNode::node() - Couldn't find Aro node identified by "Array ( [Aro0.model] => のバグ(エラー)が出る理由について

CakePHP2.x系で、ACLプラグインを使用していて、データをdelete(削除)すると、このエラーが出ました。 結論として ・SQLにインポートして入れたデータはarosに登録されていないので、消すとエラーが出る ・エラーそのものに害はないし、データは消えるので…

CakePHP2.xで、複数ログインを可能にして、通常のログイン(Email、パスワード)とTwitter認証を使い分ける方法

※この記事では、oauthのコールバック処理はUsersコントローラのopauthComplete()アクションで行っています。 oauthの導入に関してはこちらを参照してください。 CakePHP2.x系でTwitterやFacebook連携認証を可能にするOpauth認証を実装する方法が分かりやすく…

CakePHP2.xでタイトル、ディスクリプションに変数(文字列)をページ毎に送る方法

viewファイルで、 assign('title_for_layout', $post); $this->assign('after_sentence', 'のページです'); $this->assign('discription_for_layout', 'ページです'); このように、title_for_layout、after_sentence、discription_for_layout を設定します。…

Aouthなどを使ってSQLにtwitterのidを入れるときに数値が合わない、ずれる原因

結論から言うと、データ型がintやfloatでは有効桁数が足りないからです。floatの有効桁数は6桁です。 twitterなどのidは10桁以上です。これだとint型でも有効数字が、-2147483648から+2147483647なので、 3000000000などの数字が入りません。(30億。) tw…

Htmlタグでリンクの漢字にルビをふる方法。(そして、平仮名にはルビをふらない方法)

Htmlで、リンクの漢字にルビをふる方法です。 <a href="./ルートからの相対リンク/"><ruby>漢字<rp>(</rp><rt>かんじ</rt> <rp>)</rp></ruby>にルビをふる </a> このようにすると、 『漢字にルビをふる』 という文字の、『漢字』の部分だけに かんじ というルビがふられます! お試しあれ!

CakePHP2.xで、日付時刻(年月日)とcreatedを比較してデータを取得する方法

『7日以内のデータだけ取りたい…』等々思ったことはありませんか? 今回はそのような場合にデータを取る方法です。 結論からいうと、変数に、createdと同じ構造のデータを入れて、その後に findのconditionsで時刻で条件指定をすればOKです。 サンプルコー…

Macを持っているならXcodeでiPhoneアプリの一歩を踏み出そう。Xcodeの簡単な使い方。

iOSのアプリの統合開発環境のXcodeを使ってアプリっぽいものを作る最初の一歩の流れをざっくりまとめてみます。 (今回はswiftやobject-cなどのプログラミング言語は使いません!) Xcodeは、iPhoneアプリを作る場合に通常使われる開発環境です。これはMacで…

CakePHP2.x系でTwitterやFacebook連携認証を可能にするOpauth認証を実装する方法が分かりやすく書かれたブログまとめ

Cakephp2.Opauthプラグインを使ってTwitterログイン - 泣かぬなら作ってしまえホトトギスorekaihatsulog.hateblo.jp これが、一番役に立ったブログです。 やるべきことだけとにかく指示されているので、シンプルで分かりやすいです!!! Opauthは、Facebook…

Google Tag Managerを使ってサイトの変数をカスタムディメンションとしてアナリティクスに反映させる方法(ざっくり気味)

Google タグマネージャを使ってGoogle アナリティクスのカスタム ディメンションをセットする方法│株式会社イー・エージェンシー ここが参考になります。 前提としてはアナリティクスのタグをGoogle Tag Managerで設定していることが前提です。 流れは上のリ…

SQL文を書く最初の一歩を踏み出してみよう

SQL文を書くのは敷居が高いように感じるかもしれません。 でも、SELECT文から入れば、だんだんとステップアップしていくことができるでしょう。 SELECT文は、データベースからSELECT(選択)してデータを引っ張るだけなので、 データが壊れることはありませ…

CakePHPのupdateAllが出来ない時に出るエラーDatabase Error Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column の対処法

CakePHPのupdateAll()でエラーが出るときはここが怪しい! - Qiitaqiita.com ここが参考になります。 というか、このままですが。 ここはハマる人が多そうなポイントなので改めて書いておきます。 一言でいうならば、 リテラル(文字や変数など)を '"'.リテ…

ACLが原因!?データがsaveできない、AclNode::node() - Couldn't find Aro node identified by "Array ( [Aro0.model] =>の対処法

CakePHP2.x系で Aclプラグインを使っていて saveをするときに、 AclNode::node() - Couldn't find Aro node identified by "Array ( [Aro0.model] => ...... Error: An Internal Error Has Occurred. というエラーが出たときの対処法です。 データベースを見…

さくらインターネットにおけるCakePHP2.xでの.htaccessの設定をすごく荒く解説

さくらインターネットをサーバーとしたときのCakePHP2.xの .htaccessの設定です。 ぜんぶで3つ.htaccessのファイルが必要です。 appフォルダがある階層と同じところの .htaccessは <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^(ドメイン\.s</ifmodule>…

入手できなくなったCakePHP2.xのACLプラグインはまだ手に入る事について

以前は(2014年ごろまで?)、CakePHPのグラフィカルなACLプラグインが無償で手に入りました。 以下参照。 CakePHP2でACLを超簡単管理できるプラグイン「ACL Plugin 2」 - たきゃはしですblog.takahash.com しかし、2015年現在では、公式サイトがアクセ…

CakePHP2.x系でコントローラーのアクションの動作が異様に遅い時の対処法

CakePHP2.x系でコントローラーを使っている場合に、アクション(そのページに飛ぶ等)が 非常に遅い場合は次を試してみましょう。 「SamplesController」という名前のコントローラーを使っていたとします。 その場合は

google AdSenseで広告のレイアウトを右寄せに設置する方法

google AdSenseで広告を右側に設置したい場合の方法です。 ①まずgoogle AdSenseの広告のコード全体を <div></div> でくくります。 ②次に、<div> にスタイルを付けましょう。 <div style="text-aligh:right"> google AdSenseの広告のコード <div> このように記述すれば完成です。 ちゃんと右寄せになったのを確認</div></div></div>…

HTML,CSSコーディングの際にリンクを画面の幅に合わせて改行させたい場合はword-breakを使おう

HTMLのリンクはひとつの単語として扱われてしまうので、 その場合はCSSのword-breakを使いましょう。 .word-break{ word-break: break-all; } こういうのを作ってしまいましょう! そして、画面に合わせて改行させたいHTMLのリンクのクラスにword-breakを指…

CakePHP2系のACLプラグインでログアウトユーザにアクションを許可するためのコード(方法)

※筆者は CakePHP2でACLを超簡単管理できるプラグイン「ACL Plugin 2」 - たきゃはしです このサイトの情報からACLプラグインを使っていましたが、2015年6月現在 ACLプラグインであるPlugin ACLがダウンロードできない状態になっています。 2015年7月追記 Ala…

SQL文で、ある値を1だけ大きくしたい場合のクエリ(MySQL)

あるテーブルAで、scoreという項目(カラム)の値を、すべて1だけ大きくしたい場合、 UPDATE テーブルA SET テーブルA.score = テーブルA.score + 1; このような形が基本となります。 では実際にクエリを打ってみましょう。 idが100以下のデータを更新した…

さくらインターネットでCRONを用いてシェルスクリプトを実行し、SQL文でバッチ処理を行う方法(MySQL)

自分の作ったMySQLのデータベースに対して、定期的(一日一回、など)にSQLクエリを実行したい、という場合があると思います。 ランキングサイトを作っている場合や、スコア計算などを行う必要がある場合などです。 年度や年が変わったときにSQLクエリを実行…

テーブルの年と月から3年以内(年度)のデータを判別してスコア計算、そうでなければ0を入れるクエリ

UPDATE data_results, (SELECT data_results.id, CASE WHEN ((YEAR(current_date)-2) < data_results.year) OR ( ((YEAR(current_date)-2) = data_results.year) AND (data_results.month >= 4) ) OR ( ((YEAR(current_date)-2) = data_results.year) AND (d…

SQLクエリの作成に役立つ参考サイト(MySQL)

このサイトは読みやすくてまとまっていてとても分かりやすいです。 「Webブラウザで気軽に学ぶ実践SQL講座」最新記事一覧 - ITmedia Keywordswww.atmarkit.co.jp これは、SELECTとUPDATEを同時に使う際に役立ったブログです。 yoko_net Blog : 結合したSELEC…

MySQLで子データのスコアを親ごとに足したものを違うテーブルに保存するクエリ。SELECTとUPDATEを同時に行う。

MySQLで子データのスコアを親ごとに足したものを違うテーブルに保存する方法です。 SELECTとUPDATEを同時に行います。 構造的には UPDATE 保存先テーブル名 ( SELECT 親テーブル名, SUM(子テーブル名.score) amount FROM 子テーブル名 LEFT JOIN 親テーブル…

XAMPP環境においてコマンドラインでMySQLに接続する際にはデータベース名を指定しよう

SQLに接続する際には cd コマンドで XAMPPのMySQLのbinフォルダに飛んだあとに(参考URL参照) http://blackpepper.oops.jp/wp/archives/2151 ユーザ名とデータベース名を指定して、そのあとにパスワードを入れるようにしよう。 参考URL http://phpjavascrip…

SQL文で子データのスコアを足して(SUM)、親のid + 子の合計 という形でデータを出力する方法

データベースで親のidが子とリレーションをしているとします。 具体的には、 『parents』 というデータベースと 『children_results』 というデータベースがあったとします。 親のデータは id parent_name のようになっていて children_resultsは、 id paren…

CakePHP2系でidの範囲を指定してデータを取り出す方法

タイトルそのままです。 idの範囲を指定して、データをfindで取り出します。 $box にデータを入れるとして、 データのモデルの名前はModelとしましょう。 例えば、id が100から200までのデータを$boxに入れたい場合は、 $box = $this->Model->find('all', ar…

SQL文でidを指定してデータを削除する方法(phpMyAdmin)

たとえば、schoolsというテーブルで、idが3から100までのカラムを削除したい場合は以下のようにします。 DELETE FROM schools WHERE id BETWEEN 3 AND 100;以上で、SQL文でデータを削除が出来ます。phpMyAdminの場合は削除したいテーブルのSQLタブを開いて実…

ラジオボックス、セレクトボックスで選択されている値をJavaScriptで検知する方法

:checked セレクタを使います。 $("[name='data[ActivityReview][overall_stars]']:checked").val() 上記では、nameでdata[ActivityReview][overall_stars]という名前のセレクタで指定されているラジオボックスにおいて選択されている値を出すことが出来ます…

属性セレクタを取得する際の書き方(JavaScript)

属性セレクタというのは、htmlタグの中にある、 例えば <input type="submit" value="投稿"> の中の type= などで指定できる値のことです。 この場合に、inputのなかのtype="submit"を取得したい場合は、$("input[type='submit']")とコンソールに書いてみましょう。 この指定方法で、属性セレク…