
MYSQL入門以前という本を買って勉強を始めた初心者のものです。
書籍の中でMYSQLとPHPを使って住所録を作って行くのですが、どうも自己解決出来ない点があります。
DBにすでに入力済みの氏名、住所、電話番号などを修正する項目において、
echo "<p>氏名:<input type = \"text\" name = \"nam\" value =\"";
echo $row["simei"];
echo "\" size = \"40\"></p>";
という記述がありまして、valueの中にレコードから取得したデータを入れ込んでいると解説があるのですが、コードを見てもどこで区切っているのかわかりません><
echo のダブルコーテーションで囲ってあるので textやnameの属性のところの " を \ でエスケープしてるのは分かっていて
<input type = \"text\" name = \"nam\" value =\"";echo row["simei"];echo "\" size = \"40\">が一つのHTMLの構文になっているものだと理解しています。
value =\"" ~先がなぜこうなるかわかりません。valueの二個目の"の前に\が付かないのか、それともsizeの直前の"\までがvalueの中身になるのか?それであればその中の記述もおかしいと思うし。。。。
ちょっと初歩的なことで聞くのも恥ずかしかったのですが、どうしてもわからないので教えてください!!
お願いします!!!
No.2ベストアンサー
- 回答日時:
別のアプローチで説明してみます
<p>氏名:<input type = "text" name = "nam" value ="日本太郎" size = "40"></p>
上記文は下記のように3行に分割できます
1行目終わりと3行目はじめの「"」に注目
<p>氏名:<input type = "text" name = "nam" value ="
日本太郎
" size = "40"></p>
上記3行の文字列中の"(ダブルコーテーション)をエスケープすると
<p>氏名:<input type = \"text\" name = \"nam\" value =\"
日本太郎
\" size = \"40\"></p>
と表すことができます。この3行を
echo " ";
で出力するようにすれば下記になります
echo "<p>氏名:<input type = \"text\" name = \"nam\" value =\"";
echo "日本太郎";
echo "\" size = \"40\"></p>";
ここで、echo "日本太郎"; を echo $row["simei"]; に置き換えれば
当初の文になります。
No.4
- 回答日時:
#3です。
コピペしてたら誤った情報で書き込んでしまいました・・・。valueの値がhogehogeなのは変わらないんですけど、展開した結果を
勘違いされるのは困るので・・・。
誤
3." size = \"40\"></p>"
これをつなげると
<p>氏名:<input type = "text" name = "nam" value ="hogehoge" size = \"40\"></p>"
正
3." size = "40"></p>
これをつなげると
<p>氏名:<input type = "text" name = "nam" value ="hogehoge" size = "40"></p>
No.3
- 回答日時:
\"が「"」のエスケープを行っていることはご理解されているようですので、
とても簡単なことですよ。
きっと、echoの文法のダブルクォーテーションとごっちゃになっている
だけだと思います。
1.echo "<p>氏名:<input type = \"text\" name = \"nam\" value =\"";
2.echo $row["simei"];
3.echo "\" size = \"40\"></p>";
1つ1つのechoを展開して見てみましょうか。
$row["simei"]にはhogehogeとかいう値が入ってたとしましょう。
1.<p>氏名:<input type = "text" name = "nam" value ="
2.hogehoge
3." size = \"40\"></p>"
これをつなげると
<p>氏名:<input type = "text" name = "nam" value ="hogehoge" size = \"40\"></p>"
です。
つまり、valueの中身はhogehogeですね!
No.1
- 回答日時:
>sizeの直前の"\までがvalueの中身になるのか?
↑おしいです。
正しくは
sizeの直前の\"までがvalueの中身になります。
意味としてはvalueのなかみにあたる
echo $row["simei"];
をダブルクオテーションで囲ってるということになります。
echoのあとにくるものが文字列の場合はダブルクオテーションで
囲うのですが、変数だとダブルクオテーションで囲わなくてよくなります。
なので、echo "\" size = \"40\"></p>";
この一番初めにでてくるダブルクオテーションは
この中に文字列が入ってることを意味して、次にでてくる\"は
valueの後ろ側のダブルクオテーションにあたり、これをエスケープして表示
という意味になります。
わかりますかね?
早速の回答ありがとうございます!!
変数の場合は"で囲わなくていいんですね!!!
でもまだすっきりしません><
これで伝わるでしょうか??
これがvalueの中←|
echo "\" size = \"40\"></p>";
|→これがechoの中身?←|
ということでしょうか?
被っているところが出てくるんでしょうか。
あとvalue =\""; の最後の";は echo "<p>氏名 の終わりを指すのでしょうか?もうそうであればここも後ろの構文と被ってしまうので><
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP php ログイン 1 2022/11/01 00:24
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでじゃんけん勝負
-
PHP・MYSQLで複数のチェックボ...
-
フォームでのリセットを使う方法
-
画面が更新されてもチェックボ...
-
ラジオボタンをsessionで使いたい
-
PHPでユーザー情報を入力して簡...
-
$_SESSIONについて教えて下さい。
-
サーバへのアップロードが出来...
-
同じページでフォームデータを...
-
ラジオボタンを押すと、表示が...
-
PHP ボタンが押されたら処理を...
-
チェックボックスの内容が送信...
-
チェックボックスでの送信
-
POSTデータのNAME属性をVALUEに...
-
PHPでクリックするたびに変数を...
-
PHPの初心者です。現在チェック...
-
コードの何が間違っているのか...
-
複数のラジオボタングループを...
-
HTMLのリンクをクリックするこ...
-
PHPでMP3サーバを作るには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
-
<input type="hidden" >で配列...
-
フォームへの前回入力値をクリ...
-
PHP ボタンが押されたら処理を...
-
DBの値をチェックボックスに反...
-
パラメーターを隠す
-
【PHPチェック】ラジオボタンが...
-
PHPで画像の渡しが上手く行きま...
-
テキストボックスに初期値を入れる
-
ラジオボタンをsessionで使いたい
-
ラジオボタンを押すと、表示が...
-
入力フォーム→確認画面→送信画...
-
PHPの関数実行
-
PHPで、ボタンを押すと同じペー...
-
画面が更新されてもチェックボ...
-
HTMLフォームで複数選択のチェ...
-
<input type='checkbox'>要素で...
-
同じページでフォームデータを...
-
$_SESSIONについて教えて下さい。
おすすめ情報