データの分割とDBへの格納方法

このQ&Aのポイント
  • 取得したデータを分割してDBに格納する方法について解説します。
  • XAMPPを使用し、phpを使ってデータの分割とDBへの格納を行います。
  • データをカンマで区切ってDBの指定したテーブルのnameフィールドに格納することで、簡単にデータを管理することができます。
回答を見る
  • ベストアンサー

取得したデータを分割してDBに収めたい

環境はXAMPPを使って、phpで作ろうと思ってます。 内容: 取得したデータを分割してDBに収めたいです。 たとえば以下のデータを取得した状態とします。 echo $name; 出力後のイメージ↓ <a class="name" href="www.abc.com/1">なまえ1</a> <a class="name" href="www.abc.com/2">なまえ2</a> <a class="name" href="www.abc.com/3">なまえ3</a> 上記データは全て繋がった状態なので <a class="name" href="www.abc.com/1">なまえ1</a>, <a class="name" href="www.abc.com/2">なまえ2</a>, <a class="name" href="www.abc.com/3">なまえ3</a>, とカンマで区切って、区切った値ごとに DBの指定したテーブルのnameフィールドに格納したいと考えております。 DBに格納したイメージ no name no1 <a class="name" href="www.abc.com/1">なまえ1</a> no2 <a class="name" href="www.abc.com/2">なまえ2</a>, no3 <a class="name" href="www.abc.com/3">なまえ3</a>, このときカンマで区切る方法を教えていただけないでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>たとえば以下のデータを取得した状態とします。 (中略) >上記データは全て繋がった状態なので これって「改行コード」で区切られた状態ですよね?であればstr_replace()で"\n"を"\n,"にでも置換すればいいのでは? #そもそもカンマを付加したりせず、改行コードで #explode()した方が楽じゃないかと思いますが・・・

anan19
質問者

お礼

ご回答ありがとうございます。 頂いたご指摘内容がとてもヒントになりました、このヒントをもとにまたがんばってみます!

関連するQ&A

  • preg_match_allで取得データをDBへ

    質問:preg_match_allで取得したデータをDBへ格納したいです。 記述文 $pattern = "|HREF=.*?\>|"; preg_match_all($pattern,$str,$match); 補足: $pattern で指定範囲を書いてます。 $str には $patternでとってくる参照データ先が入ってきます。 print_r($match); で念のためブラウザに吐き出すと Array ( [0] => Array ( [0] => HREF="AAA"> [1] => HREF="../../../../Top"> 以下省略 取得したい範囲が取れていることは確認できました。 目的は、とってきた [0] => HREF="AAA"> [1] => HREF="../../../../Top"> : =>より先の文字列が、DBの1つのレコードに1つずつ入っていくイメージです。 アドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • データの取得方法

    Aテーブル{ id char(3) not null, name varchar(10), a_no char(5), b_no char(5), c_no char(5), date timestamp } Bマスタ{ no char(5), name char(10) } 上記のようなDBがあるのですがAテーブルのa_no、b_no、c_noに入るのはBマスタのnoになります。 下記のようにデータを取得したい場合、どうすればうまく取得できるのでしょうか。 A.id, A.name, A.a_no, カラム名をname1としてB.name, b_no, カラム名をname2としてB.name, c_no, カラム名をname3としてB.name そんなに難しいことではないと思うのですが、考えれば考えるだけ頭の中でこんがらがってきて困っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • dom要素のhtml取得について-get()

    dom要素のhtml取得について-get()メソッドを使用するのがいいのか? don要素のhtmlを取得したいと考えていますが うまくいきません。 以下htmlです。 ------------------------------------------------- <div id="hoge"> <div class="day-number">16</div> <div class="kurasuhoge"><a href="http://hogeURL.com" class="anker">○</a></div> <div class="day-number">17</div> <div class="kurasuhoge"><a href="http://hogeURL2.com" class="anker">○</a></div> </div> ------------------------------------------------- この中のアンカータグを取得し配列に格納したいです。以下のように格納出来れば理想です。 var hairetsu = {16:'<a href="http://hogeURL.com" class="anker">○</a>',17:'<a href="http://hogeURL2.com" class="anker">○</a>']; まずはアンカータグを取得と思い以下を書きました。 ------------------------------------------------- var hensu = $("#hoge .anker").parent().get(); alert(hensu); ------------------------------------------------- 結果[object HTMLDivElement],[object HTMLDivElement] と表示されてしまいます。 今getメソッドを使用していますが 他にいいメソッドがあればアドバイスいただけたら嬉しいです。 まとめますと 「#hogeの中の.anker要素をもつhtmlソースを摘出し配列に格納したいです。」 修正方法をご教示いただければ幸いです。

  • DBから取得した値を加工して別のDBへ挿入したい

    MySQLから取得した値を加工して、別のMySQLへ挿入したいのですが、 どうすればよいでしょうか? 例えば、リンク先の$row["Name"]に「さん」を付与して、別のDBへ挿入したい場合 ▽PHP: mysqli_result::fetch_assoc - Manual   http://www.php.net/manual/ja/mysqli-result.fetch-assoc.php 例1 オブジェクト指向型を参考に、連想配列を取得するところまでは出来たのですが、 この後、どうすればよいでしょうか? ■分からないこと1 ・連想配列で取得したデータを、$mysqli->close();した後でも利用するにはどうすれば良いでしょうか? whileの中で、 $data["Name"]=$row["Name"]; $data["CountryCode"])=$row["CountryCode"]); とやると1件しか取得できません。 whileの中で、 $data["Name"].=$row["Name"]; $data["CountryCode"]).=$row["CountryCode"]); とやると、ちょっとイメージと異なる配列になります。 ■分からないこと2 $mysqli->close();した後、$newmysqli = = new mysqli("localhost", "my_user", "my_password", "world");を書いて、もう一度同じようなことをやる感じなのでしょうか? 一回、閉じてから、新しいDBへ接続する流れなのでしょうか?

    • ベストアンサー
    • PHP
  • PHPでaタグ内のリンクの末尾に文字列を追加したい

    PHPでaタグ内のリンクの末尾に文字列を追加したいのですがやり方がわかず困っております。 やりたいことは以下のようなことです <a class="url" href="http://www.abc.com">○○</> や <a href="http://www.abc.com">○○</> となっているhrefのリンクの末尾に"AAA"などの文字列を付加したいです <a class="url" href="http://www.abc.com/AAA">○○</> や <a href="http://www.abc.com/AAA">○○</> ご存じの方がいらっしゃいましたらご教授ください。 よろしくお願いします

    • 締切済み
    • PHP
  • プログラムの考え方とDBの扱いかたについて

    技術的な質問ではなく、考え方についての質問です。 こっちを立てるとあっちが立たずのような状態で困ってます。 どのカテゴリで質問するか悩んだのですが、直近の投稿数が多いのでC言語のところで質問させて頂きます。 ご教示ください。 現在こういうバッチプログラムがあります。 バッチA  > (1)外部から前日分の確定データリストを取得  > (2)データリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDB(テーブルA)に格納 ※1つのプログラムで3つの処理を行ってます 今度、データリストの取得先に外部2が追加されます。 仕様が同じであれば、バッチAと同様のものを作ればいいのですが、 外部2の場合、1か月の間データが確定されないという仕様があります。 前日分のデータが確定するのは、 1カ月後までの間に取得するデータリストにキャンセルデータが無かった場合です。 1.そこでこのように考えました。 バッチA  > 外部2から1カ月分のデータリストを取得  > 取得データから、1か月前のデータを対象に1ヶ月間キャンセルデータが無いものを抽出する  > (2)データリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDBに格納 2.でも、毎日1か月分のデータを取得して抽出処理を行うのは負担になるし、 毎日ほぼ同じデータを取得するのはあほらしいと思い、以下のように考えました。 バッチA  > 外部2から前日分のデータリストをDB(テーブルB)に格納  > DBから1か月前のデータを対象に1ヶ月間キャンセルデータが無いものを抽出する  > (2)データリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDB(テーブルA)に格納 3.今度はそもそもバッチ分けた方がいいんじゃないかと思い、以下のように考えました。 バッチ1  > 外部2から前日分のデータリストをDB(テーブルB)に格納 バッチA  > DBから1か月前のデータを対象に1ヶ月間キャンセルデータが無いものを抽出する  > (2)抽出したデータリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDB(テーブルA)に格納 4.さらに、キャンセルデータの処理も別バッチにすれば、   バッチAでの処理がわかりやすくなるじゃないかと思い、以下のように考えました。 バッチ1  > 外部2から前日分のデータリストをDB(テーブルB)に格納 バッチ2  > DB(テーブルB)から1か月前のデータを対象に1ヶ月間キャンセルデータが無いものを抽出する  > 抽出したデータのキャンセルデータのレコードをDB(テーブルB)から削除 バッチA  > (1)DB(テーブルB)から前日分のデータリストを取得  > (2)データリストに基づいて特定処理の実施  > (3)特定処理の対象になったものをDB(テーブルA)に格納 ここまで考えてどうするのがスマートなのかよくわからなくなってきてしまいました。 3か4でいこうと思うのですが、3の時にバッチAで抽出処理をするのはいまいちって思ってます。 それで4にしようと思ったのですが、 テーブルBは取得データをそのままの状態で入れておくって当初考えてたので、 それをあとからレコード削除したりするのもどうなんだろうと思ってます。 確定したデータと未確定のデータが混在するのもなんだか腑に落ちません。 それだったら、新たにテーブルCを作って、確定データを突っ込んでおくってことも考えたのですが、 そうなると、バッチA最後に格納しているテーブルAと何も変わらないようなものがもう一つできてしまいます。 どういうのがスマートというか良い考え方なのでしょうか。

  • SQLの構文

    以下のように、データの存在と共に名前まで一度に取得 できるクエリの書き方って存在しますか? select count(*), namae from a_class where no='1'; 通常は select count(*) from a_class where no='1'; として、1件ならば、 select namae from a_class where no='1'; で取得しますが。 DBはPostgreSQLです。perlのDBIを利用しています。

  • keyの最大値を取得する方法

    こんにちは。 以前DBMについて質問したchocolatsです。 おかげさまで、なんとか使えるようになってきました! さて、現在DB_Fileを使用して掲示板を作っています。 投稿者の発言に、管理者がレスをつけるといったいわばオーソドックスなBBSです。 書き込み時に書き込み数(カウント)をkeyとしてデータを格納しているのですが、当初何も考えずに $no = scalar keys %DB; $no += 2; $DB{$no} = "$no$delim$name$delim$addr$delim・・・・"; #$delimは適当な区切り文字です としていましたが・・ これだと、当たり前の話しですが、投稿削除や、ログ消去ができないんですよね!^^; サーバーの容量が50Mですので、ログファイルにとれる容量は多くても1M以下にしておきたいのです。 かなりの件数までは保存できそうですが、いつかはデータの一部削除をしなくてはいけませんし・・ そこで、伺いたいのですが、 ■%DBのキーで一番大きな数字を取得する方法 はどういったものがあるのでしょうか。 私に考え付くのは、読み込んで、逆ソートして、一番目のデータを取得する・・といった手段ぐらいです。 これでは要領が悪い(負荷が大きい)ように感じるのですが、他にいい方法があれば、ぜひ教えていただけないでしょうか。 何か足りたい情報がありましたらお知らせください。補足します。

    • ベストアンサー
    • Perl
  • DBからの値を取得する方法!?

    始めまして。プログラム初心者です。DBは出来上がってるのですが、DBからの値を取得する文を何処にどうやって書けば良いか分かりません。 以下は自分で書いた文ですが・・・ 値はusernameで、ようこそXXXさんのXXXにログインした人の名前を出すのが目的です JSPの文です↓ <%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-nested" prefix="nested" %> <html:html>         <head> <body> <P> <html:html>         <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>ログインしました</title> <html> <A HREF="/kadai/pass.jsp">パスワード変更</A><br> <A HREF="/kadai/Login.jsp">ログオフ</A> ようこそ <bean:write name="username" scope="session"/> ←これで入力したが反映しません・・・ さん    </body> </html:html> </P> </head> <html> <A HREF="/kadai/pass.jsp">パスワード変更</A><br> <A HREF="/kadai/Login.jsp">ログオフ</A> </body> </html:html> 環境ですがstruts、Oracle、tomcat、eclipseです

  • エクセル2003 string型のデーターの所定文字数の数の取得

    いつもアドバイス頂きありがとうございます。 今回、質問させていただきたいのは、 string型でデーターを取得した文字列に対して ある文字の文字数がいくつ在るかを取得したいのですが VBA関数で、そのような関数はあるのでしょうか? 例  myDataにstring型の文字列を取得してあります。 その中に「,」(カンマ)が何個存在するかと言う事 を取得したい。 やりたい事として、mydata()の中に2次元配列要素となるデーターを 1次元で仮格納してあり、それをセルに書き出すために2次元 に格納(splitで再格納)しなおしているのですが、データーが変わる たびに、カンマの数を数えて配列宣言を記入するのが面倒なので、 カンマの数がいくつでも、2次元に再格納できるようにしたいためで す。 宜しくお願いいたします。

専門家に質問してみよう