2000文字x300文書をPHPとMySqlで管理?

このQ&Aのポイント
  • PHPとMySqlを使用して、2000文字x300文書を管理する方法について相談です。
  • 自分のウェブサイトで2,000-4,000文字の文書を300ページ表示したいが、PHPとMySqlが適切か疑問です。
  • 詳細な要件はまだ決まっていませんが、PHPとMySqlを使用して、HTML形式の文書を管理したいと思っています。
回答を見る
  • ベストアンサー

2000字x300文書をPHPとMySqlで管理?

PHPもMySqlも学校の授業で数週間触った程度の素人です。 小論みたいな長さの(2千-4千文字)html形式の文書を300ページくらいを自分のウェブサイトで必要に応じて表示したいのですが、PHPとMySqlは技術的に適しているのでしょうか? レンタルブログとか漁ってみたんですが、気に入ったものが見つかりませんでした。 スクリプト言語はもう少し掘り下げてみたいと常々思っていたので、これを口実にPHP/MySqlに取り組んでみたいと思っています。が、1データのサイズとして小論文並みの文字数+体裁を整えるhtmlタグって大きすぎるのか?とふと疑問に思いました。 もし1データとして大きすぎる場合、他の技術を使ったほうが良いのでしょうか? サイトはレンタル(ハッスルサーバ)で、アクセス数は一日平均200件以下という小規模な物です。 htmlからDB管理(か似たような一括管理)に移行したい理由は、ページ数が増えてきた事と、それらに個別のタイトル<title>、ジャンプリンク、解析タグを挿入するのが煩雑になってきた、ということです。 上記の要素以外の本文はどれも同じ構造なので、DBで本文を管理して、体裁と前後リンク、解析タグの自動生成をPHP(の類)で出来ないかと思ったわけです。 まだ仕様の下書きみたいな段階で漠然とした質問ですが、アドバイスいただけたら幸いです。 もし全部の条件を満たすのが無理でも、PHPとMySqlを触ってみたいので、スケールを下げた物でアドバイスいただくのでも有難いです。よろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

文書自体はsqlとは別にしてsqlで文書(というファイル)のデータベース、phpで文書整形として吐きだし ってやり方が楽なんじゃないかな。 sql側にはファイル名、タイトル、著者、概要、いくつかのキーワード 辺りを埋め込んでおければ良いんじゃないかな。(日付等が居る場合はそういうのも。そのへんはDB構築側の設計の問題) 文書自体はただのテキストでも良いしxml化しておいても良いし。 文書整形をどこまでサーバ側にやらすか ってとこかな。 私ならxmlにしといてphpはsql操作とクライアントpushを担当して ユーザ側はxmlとxslt(html整形用)を受け取って表示・・・かな

laser-disc
質問者

お礼

SAYKA さん うあー、授業を思い出す…。アドバイス有難うございます! そーか、xmlなんてのもありましたね。授業ではバラバラに教わったので統合してひとつのシステムにするところまで頭が回りませんでしたw 完全に見当違いではなかったようなので(ヨカッタ)、調べるのも勉強のうちって事でもう少し掘ってみたいと思います。クライアントpushが一番なじみが薄いですが、これももう少し調べてみます。 xml、sql、php、push技術と並べるとオソロシイですが、要は3ページ(今、前、後)動けばあとはそれを拡張していくだけですよね。頑張ります。またgooでゴネてたら構ってやって下さい。

関連するQ&A

  • PHPでMySQLのDBに接続

    PHP,MySQLが使えるレンタルサーバーを借りているのですが, PHPでMySQLに接続し、php_dbを選択をするようにしたいのですが、 この時DBファイルはどこに置けばいいのでしょうか? 現在はMySQLの管理コマンド(?)とは別にpublic_htmlの中に PHPフォルダを作り、そこにDBファイルを入れています。 PHPのスクリプトは <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>練習</title> <meta http-equiv="content-language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> </head><body> <?php $con = mysql_connect(); if (!$con) { echo ("Error:MySQLに接続できませんでした。<br />"); } else { echo ("接続ID=$con<br>\n"); } $selectdb = mysql_select_db("php_db" ,$con); if (!$selectdb) { echo ("Error:データベースを選択できませんでした"); } else { echo ("データベースphp_dbを選択しました。"); } ?> </body></html> としています。 MySQLには接続ができるのですが、php_dbには接続ができません。 php_dbのおき場所を変えるのか、ファイルの指定が間違っているのか その他、どの要に変更をしたらよいのでしょうか? お願いします。 環境はレンタルサーバーがLINUXでPHPのバージョンなどはわからないんです・・・!! 開発がOSがW2kでFTPで転送してます。

    • ベストアンサー
    • PHP
  • php+MYSQL

    タイトル 本文 書き込み後保存を押すと 下に書き込み保存されていく形です タイトル 本文 書き込み日時 タイトル 本文 書き込み日時 エラー自体は出てないのですが書き込みが反映されません val_dunpで調べたところ resource(7) of type (mysql result) > このように出てきましたなにか文自体に必要なものがないのでしょうか? <?php $link = mysql_connect('localhost','user','pass'); if (!$link) { die('接続に失敗しました。'.mysql_error()); } $db_selected = mysql_select_db('ogawa',$link); if(!$db_selected) { die('データベース選択に失敗しました。'.mysql_error()); } $res = mysql_query('SELECT * FROM test'); if (!$res) { die('クエリーが失敗しました。'.mysql_error()); } if ( $link !==false) { $msg =''; $err_msg =''; if ( isset( $_POST['send'] )=== true) { $subject =$_POST['subject']; $honbun =$_POST['honbun']; $kakikomi = $_POST['kakikomi']; if ( $subject !=='' && $honbun !=='' && $kakikomi !=='' ) { $query = " INSERT INTO test ( " ."subject," ."honbun," ."kakikomi," .") VALUES ( " . "'" . mysql_real_escape_string( $link, $subject ) ."', " . "'" . mysql_real_escape_string( $link, $honbun )."'," . "'" . mysql_real_escape_string( $link, $kakikomi)."'," ." ) "; $kakikomi = date('Y-m-d h:i:s'); $res = mysql_query($query,$link); if ($res !==false) { $msg = '書き込みに成功しました。'; }else{ $err_msg = '書き込みに失敗しました。'; } }else{ $err_msg = 'タイトルと本文を書き込んで下さい。'; } } $query = 'SELECT id,subject,honbun,kakikomi FROM test'; $res = mysql_query($query,$link); $data = array(); var_dump($res); if ($res) { while($row = mysql_fetch_assoc($res)) { array_push($data,$row); } } arsort($data); }else{ echo"データベースの接続に失敗しました"; } mysql_close($link); ?> <html> <head> <meta http-equiv="content-type" content="text/html;charset=UTF8;" /> </head> <body>> <table border="1"> <form action="test6.php" method="POST"> <tr><th>タイトル<td><input type="text" name="text" size="50"></td></tr> <tr><th>本文<td><textarea name="subject" cols="52" rows="8"></textarea> <tr><td><input type="submit" value="保存 する" /></td><tr> </table> </form> <?php if ($msg !=='')echo'<p>'.$msg.'</p>'; if ($err_msg !=='')echo'<p style="color:#f00;">'.$err_msg.'</p>'; foreach($data as $key =>$val) { echo $val['subject'].''.$val['honbun'].''.$val['kakikomi'].'<br>'; } ?> </body> </html>

  • PHPでMySQLへの接続

    お世話になります。 phpを用いてMySQLへ接続したのですが、データが空で戻ってきました。lowは件数表示されましたし、行数もその分返ってきています。何か原因は考えられるでしょうか? <html> <head> <title>PHP TEST</title> </head> <body> <?php $link = mysql_connect('localhost', 'XXXX', 'XXXX'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('<p>接続に成功しました。</p>'); $db_selected = mysql_select_db('XXXX', $link); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } print('<p>uriageデータベースを選択しました。</p>'); //mysql_set_charset('utf-8'); $result = mysql_query('SELECT * FROM sample'); if (!$result) { die('クエリーが失敗しました。'.mysql_error()); } while ($row = mysql_fetch_assoc($result)) { print('<p>'); print('id='.$row['str']); print(',name='.$row['etc']); print('</p>'); } $close_flag = mysql_close($link); if ($close_flag){ print('<p>切断に成功しました。</p>'); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • php+MYSQL

    http://log.digicafe.jp/program/sample/sample.php 以前やっていた 書き込んだものをファイルに保存されていく 〈 タイトル 本文 書き込み日時〉 〈タイトル 本文 書き込み日時〉 こんな形で保存されてました これをDBに保存されるようにしたいのですがどういった文で構成できるでしょうか?

  • PHPとMYSQLでカウンターを作っています

    アクセス数を管理画面で表示しようとしています。 **全く変な事をしているかも知れません。。。 DBはこのようになっています、同じ会員のページを合算して表示したいので 0001の会員にはpagename 0001 0001a と言う具合につけて、 0002の会員にはpagename 0002 0002a とつけて行きます pagename varchar(20) access int(11) カウントは出来ているのですが、表示させることが出来ません。 多分、全く的外れなことをしていると思います <?php require_once("dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $sql = "select access from count where like pagename = '0001%'"; $rst = mysql_query($sql, $con); $body = ""; while($col = mysql_result($rst)) { $body .= "総アクセス数". "<br>"; $body .= $col["0001"]+$col["0001s"]. "<br>"; $body .= "トップページアクセス数". "<br>"; $body .= $col["0001"]. "<br>"; $body .= "紹介ページアクセス数". "<br>"; $body .= $col["0001s"]. "<br>"; } mysql_free_result($rst); $con = mysql_close($con); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> </HEAD> <BODY> <?= $body ?> </BODY> </HTML> 分かりにくい説明かと思いますが、 どなたか分かる方ヒントでも頂けると幸いです よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP + MySQLでphp間のlocation

    PHP5 + MySQLで画像アップロード・修正機能があるホームページを作っています。 現在2つのphp(list.phpとrevision.php)があります。 list.phpで画像を表示し、そのページには「修正」リンクがあり、クリックするとrevision.phpにlocationし、画像のタイトルや説明文を修正することができます。 画像を表示する際や修正した内容は、DBに入っていて、表示する際はSELECT文で、修正した内容はUPDATEするようにしています。 修正ページで「修正完了」リンクをクリックすると、 revision.phpでUPDATE→list.phpにlocationしてSELECT文で取得 という流れで修正した内容をlist.phpで確認できるようにしています。 DBを確認する限り正しくUPDATEされているのは確認できたのですが、list.phpで表示される内容は、なぜかUPDATEされる前の情報になってしまいます。 その状態で、ページをリロードすると、UPDATEされた内容が正しく表示されるのですが、できればリロードせずに、locationした際にUPDATEされた内容を表示させたいと思っております。 ブラウザは、Firefoxを使っています。 原因や、解決策がお分かりの方いらっしゃいましたら、ご教授の程お願い致します。

    • ベストアンサー
    • PHP
  • PHPからMySQLのバックアップをとるには?

    レンタルサーバのLinux+PHP4.2.1+MySQL3.23.42の環境で行っております。 HTML(PHP)フォームから、「バックアップ」ボタンが押されたときに、 MySQLのバックアップをとる(mysqldump)するプログラムを作りたいのですが、 mysqldumpコマンドは、SQLとしてクエリ送信できるのでしょうか? 例えば、 $strSQL = "mysqldump -u **** -p**** DB名 テーブル名 > dumptest.bak"; mysql_db_query($strSQL); のような感じでは、成功しませんでした。 mysql("DB名","mysqldump -u **** -p**** DB名 テーブル名 > dumptest.bak"; さらに、このような方法もあるみたいですが、 エラーも起こらないしdumpもされませんでした。 phpMyAdminなどは、どうやって実行しているんでしょうね。。。 知っている方がいましたら、是非ご教授くださいませ。

    • ベストアンサー
    • PHP
  • php mysqlについて

    初心者です宜しくお願いします。 phpからデータベースを使いたいのですが(mysql)、mysql_query()関数のところで1366エラーが出ます。 半角英数ならエラーは出ません。 プログラムを貼り付けます。どなたかお願いします、説明をもっと書きたいのですが私もあまりわかってないのでどうもすみません。 今やっていることは全てローカルですwindowsを使ってます、文字コードもshift_jisです。phpもmysqlも一台のコンピュータでやっています。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>MySQLへデータを登録</title> </head> <body> DBとの連携テスト結果<br> <?php // DBに接続 if(!$con=mysql_connect("localhost","root","y3kwyuba")){ echo"connect_error"; exit; } // DBを選択 if(!mysql_select_db("test",$con)){ echo"select_db_error"; exit; } //MySQL4.1への対応 //mysql_query("SET NAMES SJIS"); この上の行のコメントをはずすとうまく動くのですが色々調べましたら、この書き方は推奨されないと書いてありました、他に対策はあるのでしょうか? $name = $_POST['nm']; $age = $_POST['age']; // フォームで送られてきたデータでINSERT文を作成 $sql = "insert into t_touroku(name,age) values('$name',$age)"; // SQLを実行 if(!$res=mysql_query($sql,$con)){ echo"query_error"; echo "エラー番号:".mysql_errno(), #エラー番号 "メッセージ:".mysql_error(); #エラーメッセージ exit; } // DBから切断 mysql_close($con); // メッセージ出力 echo"登録完了"; ?> </body> </html> 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP/mySQLでインサートができません。

    PHPとmySQLを勉強中の初心者ですが、よろしくお願いします。 PHPで簡単なインサート文を作ってそれをmySQLに保存しようとしているのですが、以下のエラーが出てしまいます。 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource プログラムは以下の通りです。HOSTNAME,USERNAME,DBPWDは別のところで定義していますが、mysql_connect, mysql_select_dbではエラーにならないので、データベースの選択まではうまく行っていると思うのですが。 $conn = mysql_connect(HOSTNAME, USERNAME, DBPWD); if(!$conn){ die("Logon Failure to mysql Server."); } $db = mysql_select_db(DBNAME, $conn); if(!$db){ die("Cannot access to the DB"); } foreach($csv_ary as $a => $b) { $query = "INSERT INTO TEST field_a VALUES $a"; if (!mysql_query($query, $db)){ echo "更新失敗: SQL=$query<br>"; } } mysql_close($conn); field_aはvarchar(10)でPrimary_key, NOT NULLの設定です。 Foreachで展開した配列の値はちゃんと長さ10の文字列が入っています。 PHP 4.3.11は mySQL 4.0.27です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • php経由のMySQL

    php経由で、サーバー上のMySQLにアクセスします。 その場合の、MySQLへの接続アカウントの処理は、どうするべきなのでしょうか? DBとのやり取りのコードは、サーバー上のphpファイルに書かれていますし、そのphpにアクセスしてデータをやり取りします。なので、MySQLへ接続する際のMySQLアカウント(ユーザー名とパスワード)が、php上に書かれています。 通常phpのコード自体は、ブラウザからは読めませんが、 アクセスできる場所にあるという時点で、セキュリティ上 問題があるのかなとも思います。 しかし、多くのサイトで、このような、webサーバー上のphpを通してMySQLにアクセスするのは、一般的な形だと思いますが、そのようなサイトでは、MySQLにアクセスするためのアカウントを、どのように管理しているのでしょうか? 当然、そのwebサイトへのログインアカウントとは別で管理されていると思うのですが・・・。 わかる方、よろしくお願いします。

    • ベストアンサー
    • PHP