beh, perché dopo che fai l'echo della select non c'è il ;

Posso darti du consigli su questo tipo di codice?
Quando conti il totale dei prodotti usa:
$all_rows = mysql_num_rows(mysql_query("SELECT count(*) FROM Prodotti"));

Questo ritorna SOLO il numero e non tutti i dati, se hai molti prodotti è un grande risparmio sulla memoria.

Al posto di una echo per la select usa:

Codice PHP:
?>
<div class="limit">
Mostra #
<select onchange="submitMyQuery(this)" size="1" class="inputbox" id="limit" name="limit">
   <option <?=($_SESSION['query_keys']['limit'] == 5) ? 'selected="selected"' '' ?> value="5">5</option>
   <option <?=($_SESSION['query_keys']['limit'] == 10) ? 'selected="selected"' '' ?>  value="10">10</option>
   <option <?=($_SESSION['query_keys']['limit'] == 15) ? 'selected="selected"' '' ?>  value="15">15</option>
   <option <?=($_SESSION['query_keys']['limit'] == 20) ? 'selected="selected"' '' ?>  value="20">20</option>
   <option <?=($_SESSION['query_keys']['limit'] == 25) ? 'selected="selected"' '' ?>  value="25">25</option>
   <option <?=($_SESSION['query_keys']['limit'] == 30) ? 'selected="selected"' '' ?>  value="30">30</option>
   <option <?=($_SESSION['query_keys']['limit'] == 50) ? 'selected="selected"' '' ?>  value="50">50</option>
   <option <?=($_SESSION['query_keys']['limit'] == 100) ? 'selected="selected"' '' ?>  value="100">100</option>
   <option <?=($_SESSION['query_keys']['limit'] == '') ? 'selected="selected"' '' ?>  value="">tutti</option>
</select>
</div>"
<?