2012-03-23 7 views
0

EDIT私は他のparty1がOK選挙

を獲得した「party1とparty2が票の同じ量を持っている」と言うにはどうすればよい私は私が今持っていたすべてのエラーを修正しましたが、唯一のものイムを理解するのに苦労なぜ今私はパーティーの名前がスクリーンに現れないのです!

<?php 
$id = $_GET['election']; 

$result = mysql_query(
    sprintf(" 
     SELECT votes.party, COUNT(votes.vote_id) 
     FROM votes 
     WHERE election_id = %d 
     GROUP BY election_id, votes.party 
     ORDER BY COUNT(votes.vote_id) DESC", 
     mysql_real_escape_string($id) 
    ) 
); 

// change is here 

$votes = false; 
$winners = array(); 

while (($row = mysql_fetch_row($result)) && (($votes==false) || ($row['vote_count']===$votes))) { 
    $winners[] = $row['party']; 
    $votes = $row['vote_count']; 
} 
echo '<hr><h3>'.'Results</h3><hr>'.'<h4>'.implode(' and ', $winners).' won with '.$votes.'</h4>'; 

?> 

私は画面に表示されているすべてが「そして勝った」です。私は当事者の名前が表示されていないよ!誰も知っている?

答えて

0

彼らは2つの勝者であるかもしれませんが、3,4人も知っています。ここで

はすべて本物の勝者を表示する汎用的なコードです:

// no change here 

$id = $_GET['election']; 

$result = mysql_query(
    sprintf(" 
     SELECT votes.party, COUNT(votes.vote_id) AS vote_count 
     FROM votes 
     WHERE election_id = %d 
     GROUP BY election_id, votes.party 
     ORDER BY COUNT(votes.vote_id) DESC", 
     mysql_real_escape_string($id) 
    ) 
); 

// change is here 

$votes = false; 
$winners = array(); 
while (($row = mysql_fetch_assoc($result)) && (($votes==false) || ($row['vote_count']===$votes))) { 
    $winners[] = $row['party'];// was missing the $ before row['party']; 
    $votes = $row['vote_count']; 
} 

echo '<hr><h3>'.'Results</h3><hr>'.'<h4>'.implode(' and ', $winners).' won with '.$votes.'</h4>'; 
+0

それは言う:エラー解析:構文エラーをあなたはwhile文を書く場合は、予期しない「{」行に82行82は次のようになります。 ($ row ['vote_count'] === $ votes)){ –

+0

()の前に欠落している ')'があります。 '{' – nnichols

+0

私のメインポストをもう一度チェックしてください!ありがとう –

関連する問題