对于“傻瓜式编程”问题事先道歉......我徒劳地搜索了以前对此的讨论。使用基于用户输入的PHP/MySQL对结果进行排序
所以我有一个充满了动力艇的MySQL表。每行都有基本的动力艇信息(制作/模型/等),加上1-10分的几个不同特征 - “力量”,“舒适”和“风格”。我想帮助用户找到满足他们个人需求的摩托艇。
默认情况下,该数据是由“totalscore”从高责令低,像这样:
$sql = "SELECT *,(power + comfort + style) as totalscore FROM boats ORDER BY totalscore DESC";
...并通过与PHP的成果我循环并显示它们作为一个列表。
但后来我给用户提供一系列有中/否的问题,以确定个人的喜好,我想每个答案变化 totalscore在用户会话的价值 - 从而改变列表项目的顺序。
换句话说,我希望$_SESSION["totalscore"]
随每个是/否用户输入而改变...,然后用户的结果应该从高到低排序$_SESSION["totalscore"]
,而不是数据库中的原始总计核心。
图示例
- 波士顿捕鲸船370功率= 7,舒适= 8,式= 6,totalscore = 21
- 波士顿捕鲸船350功率= 5,舒适= 7,式= 8,totalscore = 20
问题1:你喜欢时尚吗?是/否
if Yes {
$_SESSION["totalscore"] = totalscore + style;
reorder list items by $_SESSION["totalscore"]; // the 350 is now #1
}
if No {
$_SESSION["totalscore"] = totalscore + (style/2);
reorder list items by $_SESSION["totalscore"]; // they're now tied for #1
}
等等
什么绊倒了我概念是,而原始totalscore来自数据库查询$_SESSION["totalscore"]
将被存储为一个cookie。所以一旦我从totalscore切换到$_SESSION["totalscore"]
,我不知道如何重新排列列表项目。
有人能指出我在正确的方向,如果只是在一个示意图?我想弄明白,但是我不确定此时需要弄清楚什么。非常感谢。
谢谢,但我可能更多的是假的比你把我的。 :)你能简单地解释一下,我将会话变量“存储”到数据库的结果中吗?我了解PHP排序选项,但我不明白如何将会话变量和数据库结果打包在一起。谢谢。 – motorbeast 2013-04-25 01:38:35