quello che fai non ha molto senso.

Dove prendi i dati per valorizzare $dat? quello in // ricerca dati. Dove li cerchi

il WHILE esegue un loop fino a quando la condizione definita risulta TRUE. Quindi non serve nel tuo caso. Nel senso che cerca proprio nulla ma scrive all'infinito la stessa cosa.

Codice PHP:
\\dichiarazione SELECT di base:\\
$select 'SELECT *';
$from ' FROM partitelle';
$where ' WHERE ';

\\
ricerca dati\\
$where .= " data = '$dat' ";
  
$where .= " AND com = '$com' "); 
che poi alla fine e' la stessa cosa che scrivere:

Codice PHP:

$result 
"SELECT * FROM particelle WHERE data = '$dat' AND com = '$com'";
$ris mysql_query($result);
if (
mysql_num_rows($ris) == 0) {
echo 
'non ci sono risultati per i parametri scelti';
} else {

     \\
visualizzazione dati\\
     while (
$rigamysql_fetch_array($ris))
        {
         
$dat $riga['dat'];
         
$com $riga['comp'];
         echo 
"

[b]DATA[/b] 
$dat</p>";
         echo 
"

[b]COMP[/b] 
$com</p>";
         }
   }