【问题标题】:Splitting a table into groups - PHP and MYSQL将表拆分为组 - PHP 和 MYSQL
【发布时间】:2014-05-03 17:56:40
【问题描述】:

表名是racecard。今天,有9场比赛。

表结构如下:

RaceNo HorseNo HorseName

1   1   FAJR 
1   2   CUT DIAMOND 
1   3   VOICE OF FAITH 
1   4   CEASARINA 
1   5   JAIPUR GEM 
1   6   KATNISS 
1   7   PLAN B 
1   8   CLASSY DANCER 
1   9   RAJASTHAN GLORY 
1   10  HIGHWAY EXPRESS 
1   11  TAJ E SHAHI 
2   1   VICTORIOUS MARCH 
2   2   DEMONSTRATOR 
2   3   MYLA ROSE 
2   4   RIO 
2   5   MONZA 
3   1   TITLEIST 
3   2   SUNTAN BEAUTY 
3   3   VICTORIAN 
3   4   LAURUS PRIDE 

...

我正在尝试创建一个 PHP 页面,其中整个表格按种族编号分组。

页面应该有诸如 Race No -1, Race No - 2 之类的子标题:

比赛编号:1

HorseNo Horse Name Win bet Show bet Place bet

1   FAJR                          textbox         textbox          textbox 

2   CUT DIAMOND                   textbox         textbox          textbox 

3   VOICE OF FAITH                textbox         textbox          textbox 

4   CEASARINA                     textbox         textbox          textbox 

5   JAIPUR GEM                    textbox         textbox          textbox 

6   KATNISS                       textbox         textbox          textbox 

7   PLAN B                        textbox         textbox          textbox 

8   CLASSY DANCER                 textbox         textbox          textbox 

9   RAJASTHAN GLORY               textbox         textbox          textbox 

10  HIGHWAY EXPRESS               textbox         textbox          textbox 

11  TAJ E SHAHI                   textbox         textbox          textbox

比赛编号:2

HorseNo Horse Name Win bet Show bet Place bet

1   VICTORIOUS MARCH              textbox         textbox          textbox

2   DEMONSTRATOR                  textbox         textbox          textbox

3   MYLA ROSE                     textbox         textbox          textbox

4   RIO                           textbox         textbox          textbox

5   MONZA                         textbox         textbox          textbox

等等。此外,应该有用于输入投注金额的文本框列。当用户提交表格时,投注详细信息应存储在投注表中,包括相应的比赛号、马号和投注额。我需要使用数组。请帮我编码。

【问题讨论】:

    标签: c# php mysql


    【解决方案1】:

    首先确定最高的RaceNo。

    SELECT RaceNo AS RaceNoMAX FROM racecard WHERE RaceNo=max(RaceNo)
    

    然后用函数创建一个 for 或 while 循环来绘制表格

    While ($i<RaceNoMAX ){
       $sql = "SELECT HorseNo, Horse Name, Win_bet, Show_bet, Place_bet 
       FROM racecard 
       WHERE RaceNo=$i ORDER BY HorseNo ASC";
    
    $result = ...;
    
    $php_function_to_draw_the_table = ...;
    
    $++;
    
    }
    

    【讨论】:

    • "SELECT max(RaceNo) AS RaceNoMAX FROM racecard" 这可行吗?
    • 我不这么认为,因为你必须设置条件,在这种情况下是在WHERE子句中的mac(),而不是在(待选择的)字段子句中
    【解决方案2】:

    您应该使用比赛编号和可能的比赛附加数据创建第二个表格比赛(有时间吗?有名字吗?)。

    CREATE TABLE RACE (id int(11) not null auto_increment primary key, name varchar(255));
    

    每次添加新种族时,您只需将其插入到该表中:

    INSERT INTO race (name) value ("afternoonrace");
    

    然后你会在 php 中获得那场比赛的 id(对于 C# 来说很容易找到):

    $raceId = last_insert_id
    

    然后进入赛卡

    INSERT INTO racecard (raceNo, horseNo, horseName) values ($raceId, 12, "Harald");
    

    现在回答你的问题:

    $stmt = " select id, name from race";
    

    提供比赛。使用您最喜欢的查询执行器获取结果集$rs。不要使用 mysql_query,它会产生不好的业力——我的意思是它已经过时了。

    while($raceRow =  $rs->next()){
        $raceId = $raceRow['id'];
        $raceName = $raceRow['name'];
    
        $cardStmt = " select * from racecard where race = $raceId";
        $cardRs = mysqli_query($con, $cardStmt);
        print("<h2>Race $raceName</h2>");
        while($cardRow = $cardRs->next()){
            print(makeRow($cardRow));
        }
    }
    

    也可以考虑为马准备一张桌子。我的意思是,一匹马应该值一张桌子,不是吗? ;-)

    【讨论】:

    • 是的,有比赛项目的名称。示例:州长杯、冠军奖杯……我将按照您的建议:首先,我将使用 RaceNo、RaceName、RaceTime……创建 RACE 表,并将 RaceNo 作为主键。然后用 HorseNo、HorseName、RaceNo 创建一个依赖表 RACECARD。
    • 好的,我希望编程很有趣!如果其中一两个答案有帮助,最好给他们投票并将其中一个标记为解决方案。
    • 是的。很棒的感觉。享受。感谢 stackoverflow.com。非常有用的知识库。
    猜你喜欢
    • 1970-01-01
    • 2018-08-12
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多