2014-02-06 136 views
0

對NOOB問題抱歉,但我還在學習。PHP從數據庫檢索新圖像

首先,我並沒有要求某人爲我編程以下問題或給我代碼。我只是在尋求一些有關邏輯和一些建議的幫助。

我所試圖做的

這只是一個例子,我試圖做的是不同的,但將使用相同的邏輯:我想在我的網站上顯示的影片海報,用戶可以將該電影評定爲0-5星之間,他/她的評分將被記錄在數據庫中,以及其他用戶的評分。當他/她完成他/她的評價時,需要顯示新的電影海報,他/她可以再次對海報進行評級,因此它繼續直到他/她厭倦了評級電影。

  • 我假設我需要在這裏使用PHP來存儲和檢索數據
  • 表將被創建,其包含不同的圖像和對應於該電影的評級評級的邏輯,隨着用戶數量誰額定電影來計算的平均總得分

的問題

  • 一旦用戶對圖像進行評級後,如何獲取圖像?

  • 是否有可能使用PHP像使用Javascript一樣更改圖像src onclick?

  • 如果是的話我該怎麼做?有可能我需要在這裏使用PHP和Javascript的組合嗎?

任何幫助或建議將不勝感激。先謝謝你。

+0

可能的重複[如何在用戶點擊鏈接時運行PHP代碼?](http://stackoverflow.com/questions/1280767/how-do-i-run-php-code-when-a -user-clicks-on-a-link) – 2014-02-06 01:09:51

+4

您將確定使用php和javascript的組合。使用AJAX(JavaScript方面),你可以發送/接收數據到/從PHP –

+0

可能重複http://stackoverflow.com/questions/19323010/execute-php-function-with-onclick – 2014-02-06 01:11:39

回答

3

你一定需要同時使用javascript和PHP來實現這一點。

我想接近它是這樣的:

a)使用jQuery JavaScript庫,使JavaScript的更容易。

b)寫一些JavaScript,它響應用戶選擇評分。您可能需要綁定到評分按鈕的onClick事件。

c)當點擊評級按鈕時,javascript函數應該使用jQuery.ajax通過HTTP POST將選擇的評級發送到服務器。發送到服務器的數據可能需要包含用於標識電影的ID,用於表示用戶的ID(以便您可以阻止人們爲同一電影投票多次)以及他們選擇的評分。

d)在服務器端,您可以編寫一個PHP腳本來處理投票提交。它會檢查電影和用戶ID(存儲在PHP的$ _POST變量中),然後將評級保存到某個數據庫。然後,它也可以向客戶端發送一個響應,其中包含下一個電影ID和下一張海報。我建議你使用json_encode來存儲這些信息,這很容易讓javascript解釋。 e)最後,回到客戶端,你的javascript代碼可以對PHP發回的數據作出反應,通過發佈一條消息,比如「謝謝你的投票」,然後改變屏幕上的電影細節以取代他們與新的。

您的客戶端代碼看起來有點像這樣:

<img id="movie-poster" src="movie poster src" /> 
<ul> 
    <li class="rating-button">1</li> 
    <li class="rating-button">2</li> 
    <li class="rating-button">3</li> 
    <li class="rating-button">4</li> 
    <li class="rating-button">5</li> 
</ul> 
<script> 
var currentUserId; 
var currentMovieId; 
$('.rating-button').on('click',function() { 
    $.ajax({ 
    url: "URL of PHP script here", 
    type: 'post', 
    data: {'movieId':currentMovieId, 'userId':currentUserId, 'rating':$(this).text()}, 
    dataType: 'json', 
    success: function(response) { 
     // this runs after your PHP script has responded 
     // update your page with the new movie here 
     alert('thanks for voting'); 
     currentMovieId = response.newMovieId; 
     $('#movie-poster').attr('src',response.newMoviePosterSrc); 
    } 
    }); 
} 
</script> 

你的PHP腳本看起來會有點像這樣(你必須弄清楚所有數據庫和用戶驗證自己的位)

<?php 

$user_id = $_POST['userId']; 
$movie_id = $_POST['movieId']; 
$rating = $_POST['rating']; 

// check that the user is allowed to vote - possibly examine cookie for this 
// check that rating is between 0 and 5 
// check that the movie exists 
// store results of vote in database 

// load up another random movie from the database and send it back (in JSON format) 
// assume details of new movie are in $new_movie = 

header('Content-type: application/json'); 
echo json_encode(array('newMovieId'=> new movie id here, 'newMoviePosterSrc' => URL of new poster here)); 
exit; 

您還應該爲該代碼添加一些錯誤處理。 EG,如果出現連接問題要顯示的消息,或者電影ID無法識別等等。

本頁面對如何從數據庫中選擇一個隨機行的詳細信息 - IE在隨機選擇下一海報顯示: How to randomly select rows in SQL?

希望這應該足以讓你開始。

+0

非常感謝你 – Marilee

+0

這個很好,男人。 – Armin