[英]Using result of one MySQL query as variable in another MySQL query
[英]MySQL query with one variable
我有一個名為“ main_table”的表,其中有3列:
'玩家','積分'和'drop_date'
我有1個具有不同值的變量($ date):
$date == '2012-06-01'
$date == '2012-05-01'
$date == '2012-04-01'
我有1個MySQL查詢:
$query = "
select *
from main_table
where `drop_date` > '$date'
AND `drop_date` <= DATE_ADD('$date', INTERVAL 1 YEAR)
LIMIT 1
";
目標:
我想用不同的通行證運行一個查詢(每個值1通行證)
我努力了 :
<?php
$date['date'] = '2012-06-01';
$date['date'] = '2012-05-01';
$date['date'] = '2012-04-01';
foreach($date as $title => $actual_date) {
query = "
select *
from main_table
where `drop_date` > '$actual_date'
AND `drop_date` <= DATE_ADD('$actual_date', INTERVAL 1 YEAR)
LIMIT 1
";
$result = mysql_query($query) or die(mysql_error());
}
while($row = mysql_fetch_array($result)) {
echo $row['Player'];
echo $row['Points'];
}
您不斷重復覆蓋相同的變量...,然后運行查詢,但僅獲取最后一個的結果。 您希望它如何運作?
嘗試這個:
$date = Array("2012-06-01","2012-05-01","2012-04-02");
foreach($date as $actual_date) {
if( $result = mysql_fetch_assoc(mysql_query("select * from `main_table` where `drop_date`>'".$actual_date."' and `drop_date`<=date_add('".$actual_date."',interval 1 year) limit 1"))) {
echo $result['Player'];
echo $result['Points'];
}
}
請注意,我跳過了將查詢放入變量中,而將查詢結果放入變量中的過程,僅將整個內容一行一行。 由於您的limit 1
因此查詢將僅返回一行,因此無需while
-loop循環。
只需在foreach循環中移動您的時間即可。
<?php
$date[0] = '2012-06-01';
$date[1] = '2012-05-01';
$date[2] = '2012-04-01';
foreach($date as $title => $actual_date)
{
query = "select * from main_table where `drop_date` > '$actual_date' AND `drop_date` <= DATE_ADD('$actual_date', INTERVAL 1 YEAR) LIMIT 1";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
echo $row['Player'];
echo $row['Points'];
}
}
不要覆蓋您的價值觀。 這樣做可以保留所有3個值。
<?php
$date['date'][] = '2012-06-01';
$date['date'][] = '2012-05-01';
$date['date'][] = '2012-04-01';
print_r($date);
?>
輸出:
Array
(
[date] => Array
(
[0] => 2012-06-01
[1] => 2012-05-01
[2] => 2012-04-01
)
)
然后使用
foreach ($date['date'] as $actual_date) {
$query = "
select *
from main_table
where `drop_date` > '$actual_date'
AND `drop_date` <= DATE_ADD('$actual_date', INTERVAL 1 YEAR)
LIMIT 1";
echo $query."<br />";
}
輸出:
select *
from main_table
where `drop_date` > '2012-06-01'
AND `drop_date` <= DATE_ADD('2012-06-01', INTERVAL 1 YEAR)
LIMIT 1
<br />
select *
from main_table
where `drop_date` > '2012-05-01'
AND `drop_date` <= DATE_ADD('2012-05-01', INTERVAL 1 YEAR)
LIMIT 1
<br />
select *
from main_table
where `drop_date` > '2012-04-01'
AND `drop_date` <= DATE_ADD('2012-04-01', INTERVAL 1 YEAR)
LIMIT 1
<br />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.