有两个数据表 Stock(股票) Data(股票信息) 首先Stock
ID       Name
001     青岛啤酒
002     海尔集团
003     魏桥创业然后Data
StockID     Date      open(开盘价)
003      2009-09-09        0.34
001      2009-09-08        0.45
002      2009-09-08        0.23
003      2009-09-08        0.36网页排版
(select * from Stock的结果印出来的)
001     青岛啤酒     添加数据(是按钮)
002     海尔集团     添加数据(是按钮)
003     魏桥创业     添加数据(是按钮)9号这天应该是有3条数据的(001和002号还没有添加进来)
那个网页上,怎么做到让 003 这支股票后面的按钮隐藏,因为0003已经添加过了,应该只显示001和002两个。
谢谢!!

解决方案 »

  1.   

    用if(empty())判断下003里面的数据是否为空,如果不为空的话隐藏,为空的话不隐藏.
      

  2.   

    你这个是不是求的在当天时间没有添加‘开盘价’的记录就显示‘按钮’添加。否则就不显示。
    如果是这样的话:就可以用二条语句取。
    先从Data表取出时间不等于当天的记录(后边显示按钮),再取出时间为当天的记录。不显示按钮
      

  3.   


    mysql> select * from Stock;
    +------+----------+
    | ID   | Name     |
    +------+----------+
    |    1 | 青岛啤酒 |
    |    2 | 海尔集团 |
    |    3 | 魏桥创业 |
    +------+----------+
    3 rows in set (0.00 sec)
    mysql> select * from Data;
    +---------+------------+------+
    | StockID | Date       | open |
    +---------+------------+------+
    |       3 | 2009-09-09 | 0.34 |
    |       1 | 2009-09-08 | 0.45 |
    |       2 | 2009-09-08 | 0.23 |
    |       3 | 2009-09-08 | 0.36 |
    +---------+------------+------+
    4 rows in set (0.00 sec)mysql> select s.ID,s.Name,if(d.dd='2009-09-09',1,0) sign
        -> from Stock s inner join
        -> (select StockID,max(Date) dd from Data group by StockID)d
        -> where s.id = d.StockID;
    +------+----------+------+
    | ID   | Name     | sign |
    +------+----------+------+
    |    1 | 青岛啤酒 |    0 |
    |    2 | 海尔集团 |    0 |
    |    3 | 魏桥创业 |    1 |
    +------+----------+------+
    3 rows in set (0.00 sec)在程序中只要根据sign是0还是1就可以确定按钮是添加数据还是隐藏。
      

  4.   

    zhoupuyue,我执行语句怎么提示错误: 错误SQL 查询 :  SHOW KEYS FROM `s` MySQL 返回:
    #1146 - Table 'mysql.s' doesn't exist 
      

  5.   

    那就奇怪了,在我的机子上可以运行的啊!我的mysql版本是5.0。
      

  6.   


    SHOW KEYS FROM `s`
    MySQL 返回: 
    #1146 - Table 'mysql.s' doesn't exist 
     
    你是指的这条语句运行错误?你没建s表,s表只是一个别名,肯定不存在啊。
      

  7.   

    mysql> select s.ID,s.Name,if(d.dd='2009-09-09',1,0) sign
        -> from Stock s inner join
        -> (select StockID,max(Date) dd from Data group by StockID)d
        -> where s.id = d.StockID;
    运行这条显示上边提示那个错误
      

  8.   

    我是: MySQL 5.1.30-community
      

  9.   

      StockID  Date  open  
          3 2009-09-06 0.34 
          1 2009-09-08 0.45 
          2 2009-09-08 0.23 
          3 2009-09-08 0.36   ID  Name  
          1 青岛啤酒 
          2 海尔集团 
          3 魏桥创业 
      

  10.   

    看看你当前的数据库是不是Stock,Data表所在的数据库,提示你查询的是mysql数据库。
      

  11.   

    就是这二库,我只用MYSQL显示行 0 - 2 (3 总计, 查询花费 0.0007 秒)
     
    SQL 查询 : [编辑] [解释 SQL] [创建 PHP 代码]
    SELECT s.ID, s.Name, 
    IF (
    d.dd = '2009-09-09', 1, 0
    )sign
    FROM Stock s
    INNER JOIN (SELECT StockID, max( Date ) dd
    FROM DATA GROUP BY StockID
    )d
    WHERE s.id = d.StockID  
    错误SQL 查询 :  SHOW KEYS FROM `s` MySQL 返回:
    #1146 - Table 'mysql.s' doesn't exist 
      

  12.   

    我的也不行啊我用另一个特别笨的方法弄的:
    查出2009-09-09这天Data数据表中的$row['StockID']然后把值压出数据$arr中
    然后查询stock中的$row2['StockID'],每次循环的时候,比较一下,看看¥row2['StockID']在不在数组$arr中,如果在就说明已经添加过了,隐藏后面的按钮
      

  13.   

    SELECT s.StockID, s.StockName, if( d.tt = '2009-09-13', 1, 0 ) Sign FROM stock AS s LEFT JOIN ( SELECT StockID, max( Time ) tt FROM data GROUP BY StockID )d ON d.StockID = s.StockID  大智慧,终于可以结贴了  谢谢各位,太感谢了  真心的csdn真好