将表分成组- PHP和MYSQL

本文关键字:PHP MYSQL | 更新日期: 2023-09-27 18:01:35

表名为racecard。今天,有9个比赛。

表的结构是这样的:

赛马赛马赛马

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页面,其中整个表是按竞赛编号分组的。

页面应该有像比赛1号,比赛2号这样的小标题:

比赛编号:1

HorseNo马名赢投注Show投注Place投注

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马名赢投注Show投注Place投注

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

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

将表分成组- PHP和MYSQL

首先确定最高的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 = ...;
$++;
}

您应该创建第二个表race,其中包含比赛编号和可能的比赛附加数据(有时间吗?有名字吗?)

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

每次添加新的race时,只需在表中插入:

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

然后在php中获得该比赛的id(在c#中很容易找到):

$raceId = last_insert_id

,然后进入racecard

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

现在回答你的问题:

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

给出了比赛。使用您最喜欢的查询执行器来获取Resultset $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));
    }
}

也为马考虑一张桌子。我是说,一匹马应该值一张桌子,不是吗?: -)