0

テーブル「ogitems」には、「itemname」、「month」、「price」という列があります。

月ごとに整理された重複アイテムがあります。

「itemname」をチェックして、itemnameの値が同じ行があるかどうかを確認します。同じ値の場合は、「itemname」を過去2か月とこの2か月の価格とともにエコーします。

例:

"itemname" = CHEESE CHEDDAR

CHEESE CHEDDARは11か月目と12か月目にあります(したがって、CHEESE CHEDDARには2つのレコード/行があります)。11の「価格」は51で、12の「価格」は54です。

その情報をアンカータグにエコーしたい...

<a href="pricetrend.php?date=<?php echo "" . $row['month'] . "" ?>&price1=<?php echo $price1; ?>&price2=<?php echo $price2; ?>&item=<?php echo "" . $row['itemname'] . ""?>;">

基本的に、私は1つのアイテムの最新の2つの価格を取得し、それらをこのアンカータグにエコーしようとしています。助けてくれてありがとう!

4

2 に答える 2

0
select * from ogitems where itemname='CHEESE CHEDDAR' order by month desc limit 2

このSQLステートメントで問題が解決するはずです

<?php 
  $result = mysql_query("select * from ogitems where itemname='CHEESE CHEDDAR' order by month desc limit 2")
  while ($row = mysql_fetch_assoc($result)) {
    echo $row["itemname"];
    echo $row["month"];
    echo $row["price"];
   }
?>
于 2012-12-27T02:32:09.617 に答える
0

私はあなたの月がであると仮定していますdate field、これはうまくいくはずです

SQL Fiddleリンク: http ://sqlfiddle.com/#!2 / d63a0 / 4

SELECT * FROM (
                 SELECT
                        o.itemname,
                        o.month,
                        ( SELECT price FROM ogitems i WHERE i.itemname = o.itemname AND i.month<o.month ORDER BY MONTH DESC LIMIT 1) AS last_month_price,
                        o.price AS current_month_price
                FROM
                    ogitems o
                ORDER BY
                    o.month DESC

              ) AS items
GROUP BY
  items.itemname
HAVING
  items.last_month_price IS NOT NULL
于 2012-12-27T02:40:25.487 に答える