- ベストアンサー
カンマがある場合のデータ表示方法
- データに「,」があると「"」でくくられます。
- aaa.txtというタブ区切りのデータファイルをMySQLに読み込んでdatabaseテーブルを作成したい。
- データの2行目のようにカンマがある場合、両端に"が付く問題が発生する。どのようにすれば"を付けずにデータを表示させることができるか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>$sql="insert into database(no,dat1,dat2)values('".$str[$i][0]."','".$str[$i][1]."','" .$str[$i][2]."')"; このsqlだと、登録されたデータには、""は入らないと思います。 続きがないので憶測ですけど、表示する時に""がくっついているだけなのでは??? どこでくっつくのかは、データ編集の各行で逐一echoなりprintなりしてみてはいかがでしょう?
その他の回答 (1)
- hrm_mmm
- ベストアンサー率63% (292/459)
>以前CSV形式で利用していたのですが、どうしても,のついた文字 をMySQLに読み込ませる必要がありタブ区切りTXTファイルに変更しました。 csv形式で作成したときに、 2, "con,con", コンコン となって保存されているものを、拡張子だけ変更したとか?? aaa.txtの中身を再確認する必要もありそうですね。 確か、csvの""くくりをうまく切り分けてくれる関数があったように思います。 fgetcsv、とかfputcsvなどの関数を調べてみてください。
お礼
タブ区切りテキストの作成方法ですが、excelを利用して""で囲まれない方法か、excelを利用せず作成する方法をご存知でしたらご教授いただけませんか。 excelの使用方法という意味合いだとスレ違いであるのは承知しておるのですが...
補足
いろいろ試してみまして、原因が判明しました。PHPおよびMySQLは関係なかったようです。 元データはexcel形式の.xlsだったのですが、それをCSV形式にするとき[ファイル]-[名前をつけて保存]で、ファイルの種類をCSV(カンマ区切り)(*.csv)として保存して使用しておりました。 同様にタブ区切りデータにするためにファイルの種類をテキスト(タブ区切り)(*.txt)として保存して使用したのですが、できたTXTファイルをメモ帳で開いてみたところすでに""で囲まれていました。これでは当たり前の現象でした。
お礼
ご指摘いただいたように、もう一度逐一のechoかprintを試し、どこでくっついているのか調べてみたいと思います。 もしほかの原因もお心当たりありましたら、ご教授お願いいたします。
補足
ご回答くださりありがとうございます。 補足ですが、以前CSV形式で利用していたのですが、どうしても,のついた文字をMySQLに読み込ませる必要がありタブ区切りTXTファイルに変更しました。 変更点は下記2点です。 $fp = fopen("aaa.csv","r"); →$fp = fopen("aaa.txt","r"); $str[$i] = explode(",", $record[$i]); →$str[$i] = explode("\t", $record[$i]); 上記変更をしたら質問のように""で囲まれる現象となったのです。