2011-08-02 171 views
3

爲了學習更多關於php和mysql的知識,我一直在研究構建一個簡單的博客站點的一些不同的教程和文章。我有一個數據庫,包含必要的,通常的嫌疑人(ID,標題,作者,日期和帖子)。在我的php中,我查詢數據庫,將所有嫌疑人加載到麪包車中,然後在需要他們的時間和地點回顯每個人 - 出色地工作。博客文章與圖片?

現在我想走得更遠。我希望能夠添加一些圖像到博客文章,現在,只需鍵入數據庫的文本表。我該如何去建設類似的東西?我一直在尋找任何提示 - 基本上谷歌搜索「MySQL PHP博客插入圖像到後期」的每個組合,我可以想到。有很多不同的軟件選項,但我想了解如何從頭開始構建它 - 沒有Wordpress,Blogger等。

我不想讓用戶上傳圖片。我只是想在實際文章中包含圖片,以便當我查詢數據庫以加載各種php div(標題,作者,日期和帖子)時,該帖子將包含我想要顯示的任何圖片。 [即「以下是我一直在使用的一些示例文本和一張圖片」(圖片)「,您可以看到,上面的圖片是我在實際博客文章中放置的一個示例。」

如何獲取mysql查詢加載帖子並將圖片添加到適當的位置?這不是將圖像上傳到服務器或數據庫。這只是關於閱讀帖子的文本,並在適當的位置包括該帖子的圖片。我不希望用戶能夠上傳任何東西,我只想讓php頁面輸出標題,作者,日期和帖子(附圖片)。

+0

你有沒有在Google上試過「php image upload」? –

+0

你只想將你的文章與圖片鏈接?你可以發佈你實際的數據庫模式嗎? – Awea

+2

難道你不能只是添加一個普通的''標籤到帖子文本?或者,如果您想剝離HTML,請在顯示帖子之前將其替換爲img標籤的其他語法,如'[img:URL]'。 – JJJ

回答

4

有幾件事情要考慮:

  • 你希望用戶通過表單上傳圖片的網站上,或者是你將要通過FTP的唯一用戶,並上傳?
  • 用戶是否要將html鍵入到文本編輯器中他們想要顯示圖片的位置,還是要解析出某種簡單的標記語言(如[img =「path/to/image.jpg」 ])
  • 數據庫實際上是你想要完成的工作嗎?

如果你的目標是要了解更多關於PHP,MySQL和圖像的工作,或許像支持多個相冊的圖像庫可能是更直接的方式來學習你想學的東西。我所說的一個例子可以找到here(披露:這個鏈接到我爲我妻子的攝影業務建設的網站,但相關)。

希望這會有所幫助!

::編輯:: 基於更新到你的問題,我的答案評論,有兩種可能的解決方案,我會向你推薦:

最簡單的辦法: 寫一些HTML在您的文章根據您上傳的照片來引用照片。標籤很容易,甚至博客如wordpress會讓你做到這一點(所以它不是一個警察):)

教育解決方案: 在每個帖子中,允許某種類型的標記指示圖像的位置需要(比如[img] 1 [/ img] ...某些內容... [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的引用,以便您可以將輸出中的兩者鏈接到屏幕。

現在有2個每個人都存在的主要問題首先遇到,希望這將節省您撓頭的幾個小時:

首先請確保您的表單的enctype設置爲multipart/form-數據。

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

其次,當您使用上傳的內容時,它存儲在$ _FILES超全局數組中,而不是$ _POST。

我剛剛做了一個快速的谷歌,並從Tizag的第一個結果,提供了一個基本的php文件上傳概述。這不是最好的,但肯定涵蓋了基本知識。

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

此之後教程,您應該能夠獲得圖像到你的服務器(提供權限設置爲允許此)。

0

我以前就想過,在我看來,有一個簡單的解決方案,但它是固定的。在我的方式中,您的照片必須以文本內聯方式固定。在每一個博客中,「第一張」圖片必須在自己的位置,然後「第二張」圖片必須在自己的...等。

我是什麼意思? 當你建立一個上傳你的圖片的表單時,建立它,第一個圖片將被命名爲「image1」,第二個「image2」或者其他長。但名稱必須是固定的,所以你可以編寫你的html代碼。 然後,當你寫博客並選擇圖片上傳,當你按下提交按鈕時,你的PHP腳本必須在你的網站上建立適當的文件夾,然後上傳圖片到該文件夾​​中。

當你寫你的html,然後你發佈一個地方你的圖片和那個地方「來電」image1從特定的文件夾,第二個地方「來電」image2從特定的文件夾等。在該博客的MySQL表中,旁邊ID,標題,日期,小時和博客的內容,你也必須有一個列名稱文件夾,你將用php代碼調用並放置在你的HTML中。

我可以理解嗎?對不起,如果我的英文語法不正確或者是某個詞。

這是我的意見。