[英]In PHP how can I get the count of each instance in a mySQL table column?
為了澄清起見,我試圖獲取一個表以某種方式顯示我的MySQL數據庫表的輸出。 該表中填充了姓名,出生年月和生肖動物。
我想要做的是在一個表行中寫上“貓生肖”之類的標題,然后是“姓名”和“出生年份”的標題。 在此之下,我想要每個人的名字和出生年份。 我希望每個生肖動物都這樣做。
我遇到的問題是標題正在顯示黃道十二宮列的每個實例。 我知道我的代碼是錯誤的,我只是不確定下一步該怎么做! 請幫忙! 這是我的代碼
$TableName = "zodiacshared";
$SQLstring = "SELECT * FROM $TableName GROUP BY sign, birthyear";
$QueryResult = @mysql_query($SQLstring, $DBConnect);
if (mysql_num_rows($QueryResult) == 0){
echo "<p> There are no entries in the chinese zodiac gallery! </p>";
}
else{
echo "<table width = '100%' border = '1'>";
while ($row=mysql_fetch_array($QueryResult)){
echo "<th colspan='2'>"; echo $row['sign']; echo " zodiac signs</th>";
echo "<tr><th>Name</th><th>Birth Year</th></tr>";
echo "<tr>";
echo "<td>"; echo $row['name']; echo "</td>";
echo "<td>"; echo $row['birthyear']; echo "</td>";
echo "</tr>";
}
echo "</table>";
mysql_free_result($QueryResult);
}
編輯:可能會有幫助我的希望的輸出是這樣的(這是在Excel上進行的粗略草擬,但很容易理解):
編輯2:解決方案是:
$current_zodiac= '';
while ($row=mysql_fetch_array($QueryResult)){
if ($row['sign']!=$current_zodiac){
echo "<th colspan='2'>"; echo $row['sign']; echo " zodiac signs</th>";
echo "<tr><th>Name</th><th>Birth Year</th></tr>";
}else{
//echo the other rows
}
echo "<tr>";
echo "<td>"; echo $row['name']; echo "</td>";
echo "<td>"; echo $row['birthyear']; echo "</td>";
echo "</tr>";
$current_zodiac = $row['sign']; //assign new zodiac to current zodiac variable
}
您可以使用一個變量在while循環中存儲當前的生肖名稱。 因此,每次生肖名稱都是唯一的,這意味着在while循環中找到新的生肖,則可以為其打印新的標頭。
例如,流程可能像這樣。
$current_zodiac = '';
while ($row=mysql_fetch_array($QueryResult)){
if ($row['sign']!=$current_zodiac){
echo "<th colspan='2'>"; echo $row['sign']; echo " zodiac signs</th>";
}else{
//echo the other rows
}
$current_zodiac = $row['sign']; //assign new zodiac to current zodiac variable
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.