<html>
<head>
<style>
.button {
float: left;
margin-right: 3px;
width: 40px;
height: 25px;
}
.mode-0 {
background: #f00;
}
.mode-1 {
background: #0f0;
}
.mode-2 {
background: #00f;
}
</style>
</head>
<body>
<div class="button mode-1"></div>
<div class="button mode-0"></div>
<div class="button mode-1"></div>
<div class="button mode-2"></div>
<div class="button mode-1"></div>
<div class="button mode-2"></div>
<div class="button mode-0"></div>
</body>
</html>
class='mode-' ".$y." - что здесь будет в итоге? Разве сложно проверить, что здесь явный баг?
И наоборот:
echo '<button class="mode-'.$y.'" id="'.$clickmy[$x].'">'.($x+1).': '.$y.'</button>';
Читайте в руководстве как интерпретатор обрабатывает строки в двойных и одинарных кавычках.