2011-08-02 17 views
3

phpとmysqlの詳細については、いくつかのチュートリアルと簡単なブログサイトを構築するための記事に取り組んでいます。私は必要な、通常の容疑者(ID、タイトル、著者、日付、および投稿)を保持するデータベースを持っています。私のPHPでは、私はデータベースに照会し、すべての容疑者をバンにロードしてから、必要なときにそれぞれをエコーし​​て、素晴らしい結果を出します。ブログ写真で投稿しますか?

今私はさらに行きたいです。私はブログの投稿にいくつかの画像を追加する機能を持たせたいと思っていますが、今はDBのテキストテーブルに単純に入力しています。そのようなものを構築するにはどうすればいいですか?私はあらゆる種類のヒントを探していました。基本的には「MySQL PHPブログの画像を投稿に挿入する」のすべてのコンボをGoogleで検索しています。さまざまなソフトウェアオプションがありますが、Wordpress、Bloggerなどを一切構築する方法を理解したいと思います。

ユーザーが画像をアップロードできるようにしようとしていません。私はちょうど実際の投稿に画像を入れたいので、データベースにさまざまなphp div(タイトル、作者、日付、投稿)を読み込むように問い合わせると、投稿には表示したい写真がすべて含まれます。 [すなわち「ここには私が作業しているサンプルテキストと写真(写真)」があります。上の図は実際のブログ記事に載せた例です。

投稿を読み込んで適切な場所に追加するには、どのようにmysqlクエリを取得しますか?これは、イメージをサーバーまたはデータベースにアップロードすることではありません。これは、単に投稿のテキストを読んで、その投稿の画像を適切な場所に入れることです。私はユーザーに何もアップロードすることができないようにしたい、私はちょうど、タイトル、著者、日付、および投稿(写真で完全)を出力するPHPページをしたい。

+0

Googleで「php image upload」を試してみましたか? –

+0

写真とあなたの投稿をリンクしたいだけですか?実際のDBスキーマを投稿できますか? – Awea

+2

ポストテキストに通常の「」タグを追加できませんか? HTMLを取り除きたい場合は、 '[img:URL]'のような他の構文を思いついて、投稿を表示する前にimgタグに変更してください。 – JJJ

答えて

4

考慮すべきいくつかのこと:

  • は、ユーザーがサイト上のフォームを通じて画像をアップロードしますか、またはあなただけのユーザーになるだろう、とFTP経由でアップロードしていますか?
  • ユーザーは画像を表示するテキストエディタにhtmlと入力するか、単純なマークアップ言語([img = "path/to/image.jpg" ])
  • 実際に達成しようとしているデータベースが実際に必要ですか?

PHP、MySQL、画像の操作について詳しく知りたい場合は、複数のアルバムをサポートしている画像ギャラリーのようなものが、学習したいことをもっと簡単に理解する方法かもしれません。私が話していることの例は、here(開示:私は妻の写真ビジネスのために構築しているウェブサイトにリンクしていますが、関連性があります)にあります。

希望すると便利です。

:: EDIT :: あなたの質問に更新し、私の答えへのコメントに基づいて、私はあなたにお勧めします2つの解決策があります。

簡単に解決策: 投稿にいくつかのHTMLを書きますアップロードした場所に基づいて写真を参照します。タグは簡単ですし、WordPressなどのブログでもこれを行うことができます(つまり、コピーアウトではありません)。

教育的解決策: 各投稿では、いくつかのコンテンツ([img] 2 [/ img] ...など)を追加する必要があります。また、各写真IDと各投稿IDあなたが写真をポストに記入したいと望む位置と一緒に。明確にするために、それは次のようになります。

Table photo_in_post: 
---------------------------------- 
|img_id | post_id | img_position| 
|--------|---------|-------------| 
| 17  | 4  | 1   | 
|--------|---------|-------------| 
| 3  | 4  | 2   | 
|--------|---------|-------------| 
| 4  | 2  | 1   | 
|--------|---------|-------------| 

ポストのテキストをつかんした後、おそらくあなたのようなクエリを実行できます。

select * from photo_in_post join img on img.id = photo_in_post.img_id where photo_in_post.post_id = 4 order by photo_in_post.img_position; 

、その後、自分の投稿をループは[IMGの各発生を置き換えます] NUMBER [/ img]に、タグ内のimg_positionに対応するデータベース結果に基づいて生成された画像タグが含まれています。また、データベースの結果をループして、次の行に沿って何かを実行することもできます。

str_replace("[img]".$row['img_position']."[/img]", "Generated image tag", $postContents); 

これは、おそらく開始するには十分です。

+0

いいえ、ユーザーに何もアップロードできないようにしたいのですが、私はPHPページにタイトル、著者、日付、投稿(写真付き)を出力したいだけです。 – Will

+0

ありがとうございました。ほんとうにありがとう。私は「教育的解決策」をとり、それに取り組むつもりです。 :) – Will

0

これは私が想像していたように、コード全体を書くことなく(そして試行錯誤の楽しさをすべて省くことなく)うまく動作しないので、大学で苦労したものです。基本的にはあなたのデータベースには画像名が含まれており、投稿への参照がIDとなっています。

まず、フォームのenctypeがmultipart/form-dataに設定されていることを確認します

は今、誰もが最初に遭遇し、うまくいけば、これらはあなたの頭のスクラッチの数時間を節約する2つの主要な問題があります。あなたはそれが$ _POSTではなく、$ _FILESスーパーグローバル配列内に格納されてアップロードされたコンテンツを使用して作業している第二に

<form enctype="multipart/form-data"></form> 

私はちょうど簡単なgoogleを行い、PHPファイルのアップロードの基本的な概要を示すTizagの最初の結果を取り出しました。それは最高ではありませんが、確かに基礎をカバーしています。

http://www.tizag.com/phpT/fileupload.php

ご使用のサーバーに画像を得ることができる必要がありますそのチュートリアルに続いて(提供する権限がこれを許可するように設定されています)。

0

私はもう少し前に考えましたが、私の意見では単純な解決策が1つありますが、修正されています。私のやり方では、あなたの写真はテキストでインラインで修正されなければなりません。すべてのブログで、「最初の」写真はそれ自身の場所になければならず、次に「2番目の」写真はそれ自身でなければなりません...

どういう意味ですか? 写真をアップロードするフォームを作成するときは、最初の画像の名前が「image1」、2番目の画像「image2」またはそれ以上になるように構築します。しかし、名前を修正する必要がありますので、適切なHTMLコードを書くことができます。 あなたのブログを書いてアップロードする画像を選択し、送信ボタンを押すと、あなたのサイトに適切なフォルダを作成し、そのフォルダに画像をアップロードする必要があります。

あなたのhtmlを書くと、写真の場所を投稿し、特定のフォルダから画像1を "呼び出し"、2番目の場所から "特定のフォルダから画像2を呼び出す"などがあります。そのブログのMySQLテーブルでは、ブログのID、タイトル、日付、時間、内容を入力する必要があります。また、列名のフォルダも必要です。これをPHPコードで呼び出し、HTMLに配置します。

わかりましたか?申し訳ありませんが、もし私の英語の文法が間違っていたり、何か言葉が間違っていたら。

これは私の意見です。

関連する問題