2014-02-06 95 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