• ベストアンサー

半角をいれるとうまくデータが更新されない

PHP/MySQL/HTMLで、データを更新する画面を 練習として、作成しています。 保守するデータは、全国の都道府県名です。 都道府県には、番号がふられています。 MySQLのテーブルは、BANG(int 4) KNNA(varchar 40) のような感じです。 第1画面で、都道府県コードを入力し、 都道府県テーブルにデータがあった場合、 第2画面(データ変更画面)を表示します。 表示の際、テーブルから、都道府県名を画面にセットします。 データ変更画面は、 <tr><th>県コード</th> <td><?php echo($bang); ?></td> </tr> <tr><th>県名</th> <td><input type="text" name="KNNA" value=<?php echo($knna); ?>> </tr> というフォームです。 SUBMITボタンを押すと、画面の県名をSQLに接続し、テーブルにUPDATEします。 ここで、県名に東京1と、全角と半角を続けて更新すると、データに綺麗に値が落ちます。 再度、東京1を保守するために呼び出すと、 変更画面には東京1と表示されます。 しかし、東京 1と、京と1の間に半角のスペースを空けると、データには落ちますが、再度画面を呼び出したとき、県名には東京までしか表示されません。 原因が全くわからず、悩んでいます。 素人な質問で済みませんが、どなたか教えていただけたらと思います。

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

  • ベストアンサー
回答No.2

<input type="text" name="KNNA" value=<?php echo($knna); ?> の部分を <input type="text" name="KNNA" value="<?php echo($knna); ?>"> にしてみてもだめですか?

mimi0115
質問者

お礼

ありがとうございました。おっしゃるとおり、書き足してみたところ、無事に表示されました。 独学で取り組んでいて、細かいところまで意味を理解していないんですね、多分。 ””でくくる、くくらないの違いにまだ、見極め?がつかず、つけたりつけなかったりしていました! ありがとうございました。

その他の回答 (1)

回答No.1

「データに落ちる」というのは、データベースには「東京 1」という値がちゃんと入るって事ですか? となるとあとは表示時の問題ですよね。どこから「東京」だけになってしまっているのかを、ところどころでprint文で表示させて調べると原因がわかると思いますよ。文字コードがどうなってるのかが気になるのですが、そのあたりも意識して調べてみたらどうですか?

mimi0115
質問者

お礼

ありがとうございました。 自分のPC環境のみで動かしているので、文字コードの意味が、いまいちわからないまま、のような気がします。もう一度調べてみたいと思います。 一応、PC内では、すべて、シフトJIS設定にしているつもりです。がその他のタイプに対応できるのかといわれると、まだまだです。これからも、頑張ろうと思います。

関連するQ&A