如何按ID顺序使用php和mysql引用当天的报价
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何按ID顺序使用php和mysql引用当天的报价相关的知识,希望对你有一定的参考价值。
我正在尝试连接mysql数据库并获取数据我需要它按ID(每日)按顺序获取(数据)并将两个数据分开并通过两个不同的变量调用它们,数据库看起来像这样:
------------------------------
| ID | Data | Data2
------------------------------
| 1 | tea | hot
| 2 | milk | hot
| 3 | pepsi | cold
并且输出只有一行(一个数据)
我不是如上所述:)这只是为了澄清......以及UTF-8中大数据的最佳排序和类型是什么?
编辑: 你能让它返回5行而不是1行吗?通过身份证?例如第一天(1-2-3-4-5)ID和第二天(6-7-8-9-10)等等?
答案
quotes
----------------------------------
| id | data | data2
----------------------------------
| 1 | first quote | translated quote
| 2 | second... | bla bla
然后你选择它像:
$firstday="2011-06-06";
$getquote = mysql_query("SELECT * FROM quotes WHERE id=(DATEDIFF(CURDATE()+1, '$firstday'))");
$quote = mysql_fetch_object($getquote);
echo $quote->data . $quote->data2;
编辑!!:我已经删除了datediff,因此从日期差异返回的ID直接在WHERE中。
这样做是计算第一天和当前日期之间的差异。因此,每天约会的日期都会更大。 DATEDIFF(CURDATE()+1, '$firstday') as datediff
可以解释为
datediff = differenceBetween(Currentday +1 and firstDay)
- 昨天是2011-07-06,因此
datediff = 2011-07-07 (there is +1!) - 2011-07-06
是1 - 今天,它的
2011-07-08 - 2011-07-06
是2 - 明天
2011-07-09 - 2011-07-06
是3 - 后天
2011-07-10 - 2011-07-06
是4 - 在一个月内它将是
2011-08-08 - 2011-07-06
,即33
因此,datediff每天都会增加1
quotes
-------------------------
|id| data
-------------------------
|1| quote day 1 (because date difference from start == 1)
|2| quote 2 day 2 (datediff == 2)
|3| quote 3 day 3 (datediff == 3)
|4| quote 4 day 4
.....
或者很快:每天都会有不同的引用,从ID 1开始。
我无法解释这个......
每天编辑#2:5报价
$offset = date_diff(new DateTime('now'), new DateTime('2011-08-29'))->format('%d');
$getquote = "SELECT * FROM quotes LIMIT {$offset},5";
第二次编辑感谢ajreal(SQL LIMIT syntax error)
编辑#3:5每天报价,可变量变化..
选项1:
$choose=0; //statically defined, only first of that day will pop out
选项2:
$choose = mysql_real_escape_string($_GET["qid"]); //which one will be defined in url.. (watch out, people can figure it out and browse through all quotes
选项3:
$choose = rand(0,4); //will choose it randomly from those 5 daily quotes
因此,选择您喜欢的其中一个选项,然后在此之前添加:
$offset = 5*date_diff(new DateTime('now'), new DateTime('2011-08-29'))->format('%d') + $choose;
$getquote = mysql_query("SELECT * FROM quotes WHERE id = '$offset'");
$quote = mysql_fetch_object($getquote);
echo $quote->data . $quote->data2;
另一答案
如果你想要一整天的固定报价,只需让当天的第一个客户在桌面上做一个RAND()并选择随机报价。
然后将该报价标记为当天的报价,并为所有其他用户提供。
重复。
以上是关于如何按ID顺序使用php和mysql引用当天的报价的主要内容,如果未能解决你的问题,请参考以下文章