phpで作ってデータベース(Mysql)に保存してあるデータをidごと別々にhtmlにて書き出したいですが可能でしょうか?
したいことは、管理画面に表示されているidごとの項目にstg同期ボタンがあって、それを押すとid.htmlとしてそれぞれ書き出したいです。
例えば、100.htmlとして、一つのユーザーが観れるhtmlページを書き出したいです。
例2:データベースに
test_id, test_title, test_contents, test_date.test_imageのデータを保存しています。このデータのid毎にhtmlにて書き出したいです。WordPressやMovable Typeとかに似ているイメージです。
例えば:添付した画像test3の書き出すボタンを押すと/Applications/MAMP/htdocs/test/のディレクトリーの下に書き出したいです
/Applications/MAMP/htdocs/test/1.html
/Applications/MAMP/htdocs/test/2.html
1.htmlと2.htmlにデータベースに保存されているtest_id, test_title, test_contents, test_date.test_imageのデータがid毎に全部入っています
何を使ってどうすればいいかわかりません、誰かが助けてください!!
index.htmlの一覧ページがありますその中に<a href="100.html"></a>あるとします、これの飛ぶ先の100.htmlファイルを書き出したいです
ユーザー側が観れる、index.html一覧ページ:
<div><a href="100.html"></a></div>
<div><a href="99.html"></a></div>
<div><a href="98.html"></a></div>
<div><a href="97.html"></a></div>
<div><a href="96.html"></a></div>
これは管理画面ですべての記事ページを作っています。
管理画面のview.phpです:
<form action="" method='post'>
<table>
<thead>
<tr>
<th>ID</th>
<th>タイトル</th>
<th>商品名</th>
<th>作者</th>
<th>項目名</th>
<th>画像</th>
<th>日付</th>
<th>内容</th>
<th>xxx</th>
<th>編集</th>
<th>削除</th>
<th>STG同期</th>
</tr>
</thead>
<tbody>
<?php
require_once("db.php");
$query = "SELECT * FROM test ORDER BY test_id DESC";
$select = mysqli_query($db, $query);
while($row = mysqli_fetch_assoc($select)){
$test_id =$row['test_id'];
$test_title = $row['test_title'];
$test_product =$row['test_product'];
$test_author =$row['test_author'];
$test_koumoku =$row['test_koumoku'];
$test_date = $row['test_date'];
$test_hunbun = $row['test_hunbun'];
echo "<tr>";
?>
<?php
echo "<td>$test_id</td>";
echo "<td>$test_title</td>";
echo "<td>$test_product</td>";
echo "<td>$test_author</td>";
echo "<td>$test_koumoku</td>";
echo "<td>$test_image</td>";
echo "<td>$test_date</td>";
echo "<td>$test_hunbun</td>";
echo "<td><a href=''>xxx</td>";
echo "<td><a href=''>編集</td>";
echo "<td><a href=''>削除</td>";
//ここまで考えたのですが次はどうすればいいかわかりません、下記のstg同期ボタンを押したらid.htmlとして書き出したいです。
//sync.phpを作ればいいかと思いましたが書方がわかりません。例:100.htmlにてここにあるすべての項目がhtml式で書き出せるようにしたいです。
echo "<td><form action='sync.php' method='post'><div>
<input type='submit' class='btn' name='$test_id' value='stg同期'></div></form></td>";
echo "</tr>";
}
?></tbody>
</table>
</form>
こちらがsync.phpですが問題はidごとに書き出したいので、ここはダメかなと
<?php
if(isset($_GET['test_id'])){
$the_id = $_GET['test_id'];
}
$query = "SELECT * FROM test WHERE test_id = $the_id";
$select_query = mysqli_query($db, $query);
while($row = mysqli_fetch_assoc($select_query)){
$test_id =$row['test_id'];
$test_title = $row['test_title'];
$test_product =$row['test_product'];
$test_author =$row['test_author'];
$test_koumoku =$row['test_koumoku'];
$test_date = $row['test_date'];
$test_hunbun = $row['test_hunbun'];
?>
<p><?php echo $special_planning; ?><br>
<p><?php echo $special_title; ?></p>
<?php } ?>
<?php
$url = "http://superceo.local/test/sync.php";
$buff = file_get_contents($url);
//ここをどうしたらいいですか?後stg同期を押した時に実行されません
$fname ="/Applications/MAMP/htdocs/stg/test/ここに入るID.html";
$fhandle = fopen($fname, "w");
fwrite($fhandle, $buff);
fclose($fhandle);
?>
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+2
id毎に内容をtableタグに出力して、それぞれに「stg動機」ボタンを設置しているということで良いですか?
それで、仮にidが”0001”のデータがあって、その「stg動機」ボタンを押すと0001.htmlを保存するようにしたいということでしょうか?何故そうする必要があるのかという疑問はありますが、こういう理解で良いなら。
sync.phpで、そのidのデータを再びhtnl文字列に起こしてファイルに保存すれば良いかと。
ファイルi/oの関数 file_put_contents
関連する関数はページのリンクから辿れると思います。
保存予定のパスにphpの実行ユーザが書き込み権限を持っている必要があると思います。
phpが何処にでも書き込めるとセキュリティ的に良くないので、許可されたスペースに書き出して転送するのが良いかも知れません。例えばftp_put
サーバ上に書き出すイメージで書きましたが、ユーザにダウンロードさせるなら書き出したファイルをダウンロードさせる手順がもう一段階必要になると思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
user.php?id=100
みたいな形にして、
user.php
側で $_GET["ID"]
でアクセスされているIDを取得してデータを表示するのでは駄目なのでしょうか?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 89.99%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
test0001
2016/03/24 17:36
何を書き出せばよいのかわかりません。
hyskyo
2016/03/24 18:17
説明文を書き直しました。よろしくお願いします