RaceName
を照会している場合は、これが必要です。
<?php
$query = "SELECT CandidateName, CandidateVotes, Party, MainRaceName, RaceName, win
FROM candidates
WHERE RaceID = $RaceID";
$result = mysql_query($query) or die(mysql_error());
for ($i = 0; $row = mysql_fetch_array($result), $i++) {
// Print out main race name and race name on first iteration only
if ($i === 0) {
?>
<h1><?php echo $row['MainRaceName'] ?></h1>
<h1><?php echo $row['RaceName'] ?></h1>
<?php
}
?>
<p><?php echo $row['CandidateName'] ?></p>
<p><?php echo $row['CandidateVotes'] ?></p>
<?php
}
?>
あなたがMainRaceName
を照会していて、メインのレースの下にすべてのレースをプリントアウトする必要がある場合は、私が一緒に候補者を持つグループのレース名をだろうし、このような具体的なレース名の合計候補の票を取得します。あなたの写真から
<?php
$query = "SELECT CandidateName, CandidateVotes, Party, MainRaceName, RaceName, win
FROM candidates
WHERE RaceID = $RaceID";
$result = mysql_query($query) or die(mysql_error());
$grouped_result = array();
$total_votes = 0;
$main_race = '';
for ($i = 0; $row = mysql_fetch_array($result), $i++) {
// If it is first iteration, set the current race name to race name in row
// and save main race name
if ($i === 0) {
$main_race = $row['MainRaceName'];
$cur_race = $row['RaceName'];
}
// If current race name is different than race name in row we reset
// total count of votes, since we need to have sum of votes grouped by race name
if ($cur_race != $row['RaceName']) {
$total_votes = 0;
}
// Populate grouped array
$grouped_result[$row['RaceName']]['candidates'][] = array(
'name' => $row['CandidateName'],
'votes' => $row['CandidateVote']
);
$grouped_result[$row['RaceName']]['total_votes'] = $total_votes + $row['CandidateVotes'];;
}
は$grouped_result
あなたにこのようなネストされた配列の何かを与えるだろう。
array(
'President' => array(
'candidates' => array(
0 => array(
'name' => 'Mr. X',
'votes' => 429
),
1 => array(
'name' => 'Ms. Y',
'votes' => 43
),
.
.
.
),
'total_votes' => 5247
),
'US House of ...' => array(
'candidates' => array(
0 => array(
'name' => 'whatever_his_name_is',
'votes' => 3693
)
)
'total_votes' => 3693
)
)
これで、htmlを印刷することができます。
<h1><?php echo $main_race ?></h1>
<?php
// loop through all races
foreach ($grouped_result as $racename => $data):
?>
<h1><?php echo $racename ?></h1>
<?php
// loop through all candidates in this race
foreach ($data['candidates'] as $candidate):
?>
<p><?php echo $candidate['name'] ?></p>
<p><?php echo $candidate['votes'] ?></p>
<!-- Calculate vote percentages -->
<p><?php echo ($candidate['votes']/$data['total_votes']) * 100 ?> %</p>
<?php
endforeach;
?>
<h1>Total votes: <?php echo $data['total_votes'] ?></h1>
<?php
endforeach;
?>
今、あなたはあなたのコードにはネストされたループはありませんどんな...
、すべてのことのスタイルをテーブルに置くことができます。それは何をすべきか、代わりに何をしていますか? – Barmar
なぜあなたはそれを使用しない場合、そのコードのトラブルシューティングをしていますか?すべての 'mysql_ *'関数は何年にもわたって非難されており、10年以上の選択肢があります。 PDOに移動します。 – miken32
バーマー私は知っている。それが私の助けが必要な場所です。私は助けが必要な場所を示すために別のイメージを追加しました。ネストされたステートメントの代わりに他のソリューションがあるかもしれません。ありがとう – CyberFla