登録すると同時にfopenなどを使って商品の情報が書かれたhtmlファイルを作ろうと思っています(食べログの店舗登録のようなシステムを作ろうとしてます)
質問ですが、ファイル名を登録と同時に商品IDにするやり方を教えていただきたいです。
商品ID名はAUTO_INCREMENTで自動的に追加される形式を取っています。
この形式にはこだわってません。
また、そういう機能ならばfopenを使わなくても他にいい方法があるよ。
ということでしたらそちらも是非教えていただきたいです。
当方初心者ですので、リンクや書籍の紹介でもよいですが解説付きでお願いします。
(1)大雑把な手順
手順としては、MySQLに対してデータ追加(INSERT)を実行し、その直後にAUTO_INCREMENTの値を取得してhtmlファイルを作成するという手順にすれば良いということになります
人力検索みたいに「登録しました」だけを表示しても良いですし、phpのechoで出力しても良いです
(2)AUTO_INCREMENTの値を取得する方法
直近のSQLで生成されたAUTO_INCREMENTの値を取得する方法は各種あり、下記一例です
例1:mysql_connect の場合は mysql_insert_id() でAUTO_INCREMENTの値を取得できます
http://www.php.net/manual/ja/function.mysql-insert-id.php
例2:LAST_INSERT_ID を使ってMySQLに問い合わせて値を取得できます
http://dev.mysql.com/doc/refman/5.1/ja/information-functions.html
※同時に複数の人がアクセスしてきた場合に違う人の値を取得したりしないかと心配してしまうかもしれませんが、MySQL側でセッション毎(接続毎)に情報を分けて管理してくれているのでcloseせずに連続して使っていれば心配は要りません
以下、余談
ブログやCMSなどで採用されているようにMySQLに毎回アクセスするのではなく、静的HTMLファイルを用いるのは時代遅れで管理も面倒ですよ(だからCMSなどを使うという方向になってしまう)
(1)MySQLとの接続以外に、ファイルシステムへの直接アクセス(fopenなど)が足かせになる
MySQLなどは同時アクセスなどにも自動対応してくれますがファイルシステムの制御は自前で行わなければならず、アクセスが増えてくるとphpなどの低速なシステムでは対応しきれなくもなる
(2)編集や削除、履歴やバージョン管理が面倒
HTMLファイル内のリンクをチェックして関連した画像ファイルなどを削除したりしなければならないので面倒
プログラムミスや操作ミス、何らかの突発的トラブルなどで消し忘れたりすると整合性が取れなくなる
(3)応答性はそれほど違わないどころか遅くなる
静的HTMLファイルだけでなく、php+MySQLで生成したページもキャッシュが効くので、応答性はそれほど違わない結果になる
面倒な作業をphpでプログラムするよりもMySQLなどから直で取り出すほうが結果的に早い
No.1への返信への返信です
簡単な構成例
・index.php(トップページ)
・input.php(新規登録処理)
・edit.php(編集処理)
・delete.php(削除)
・list.php(商品リスト出力)
・detail.php(商品詳細の出力)
ちょっと欲張りなプラスアルファ
・login.php(ログイン/ログアウト処理)
・cart.php(ショッピングカートの中身を出力して、支払い方法の選択画面などに誘導する)
動作を理解するための最低限な構成例
・list.php 商品リスト出力がトップページも兼ねる。新規登録ページへ飛ぶボタンも用意する
・input.php 新規登録処理
・detail.php 商品詳細の出力
最低限な構成例のような単純な構造ではセッションを使わずに作れます
(セッションはユーザー管理やショッピングカート管理などで使います)
1.商品リストの詳細ボタンをクリックするとpostあるいはgetで商品IDをdetail.phpに送る
2.detail.phpは商品IDでデータを検索・取得して、詳細ページとして出力する
最低限の構成例にチャレンジして、その後list.php にページング機能(複数のページに渡る場合の処理)や絞込み、並び替えなどを加えると基本部分は出来上がります
(並び替え情報などはクッキーに保存したりしておくと利便性があがるかもしれません)
さらにその後ログオンやカートなどを組み込む(セッションは必須ですね)と見た目はショッピングサイト同様になります
本格的な運用には、さらにセキュリティ面の考慮が必要になるため個人で作り上げるには年単位の時間を要しますが、見た目を整えて動きを理解するまででよければ(時間やその人の学習能力にもよりますが)1ヶ月から3ヶ月くらいで出来るようになるでしょう
最近の入門者向けの書籍はあまりみていませんが、php+MySQLで簡単なカートシステムを作るまでが載っているような本もあるはずですから、本屋でさがしてみるなどもしてみるといいと思います
「初心者です」がホームページ作成もはじめての方なのか、HTMLやCSSなどの基礎はある程度知ってるけどプログラミングはまったくの初めてなのか、プログラムの経験はあるけれどphpは初めてなのか、、、どこまで書けば終わりが見えるのか見えないのか判らないですけど、なんとなくは伝わりましたでしょうか?