- ベストアンサー
改行された複数のデータを1つずつ分けて登録
PHP4.x.x MySQL3.x.xで 勉強中の初心者です。 駅名を登録するDBで、テキスト入力部分に入力された以下のような駅名データを1行毎に分けて、1行目から順番に番号もつけてそれぞれ別のデータとしてinsertしたいのですが、方案が浮かびません。 ■■■■■■■■データ(駅名)■■■■■■■■ 東京 有楽町 新橋 浜松町 ■■■■■■■■■■■■■■■■■■■■■■■ こちらのデータをPOSTで投げて受け取ったデータを ひとつずつ分けて insert into station values ('$sta_order', '$sta_name') という風に順番と駅名をinsertしたいと思います。 POSTで送ったデータを各駅名に分けて繰り返し処理で順番を振りながら insertを繰り返す形にコーディングしたいのですが、いまいちわかりません。 送られたデータの改行を「,」に変換していったん配列に入力して配列をひとつずつ呼び出して、insertしたらいいでしょうか・・・? このアイデアが正しいとして、実際のコーディングはどうしたらいいでしょうか? 配列が苦手で・・・・ まだ思い通りに扱えません・・ 皆様!どうかお知恵をお貸しください!!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
kyo999さんが提示した文法に少し補足として、、、 foreach(explode(PHP_EOL, $text) as $k=>$sta_name){ $sta_order=$k+1; $sql = "INSERT INTO `station` (`sta_order`, `sta_name`) VALUES ('$sta_order','$sta_name')"; $result = mysql_query($sql); } もちろん上記のSQL文は適当に指定しているので、ご自身で修正箇所は変更してください。
その他の回答 (1)
- kyo999
- ベストアンサー率64% (34/53)
改行文字で分割→配列代入すればよいかと思います。 // $textにはフォームから送信されたデータ(駅名)が入る $sta_names = explode(PHP_EOL, $text); var_dump($sta_names); ただし「PHP_EOL」が使えるのは、PHP 4.3.10 および PHP 5.0.2 以降です。