Ora è più chiaro, ma dubito che ciò si possa fare unicamente con una select dato che per sapere quale indice dell'array prendere di volta in volta dovresti effettuare una select che ti restituisce il valore di CAMPO.
In pratica per essere in grado di comporre da script la select devi averne precedentemente effettuata una per il recupero dei valori di CAMPO.
Magari ciò è possibile, ma non sono ferratissimo il SQL. Forse qualche utente potrebbe fornirti una soluzione più efficace.
Per quanto mi riguarda, credo che tu debba effettuare una select per range di date senza considerare il campo CAMPO. In seguito dovresti scorrere il resultset e conservare solamente i record che hanno $a[CAMPO] = 1.
Ad esempio:
Codice PHP:
$query = "SELECT id, data, campo, descrizione FROM prono WHERE data >= '$data_min' AND data <= '$data_max'";
$result = mysql_query($query) or die ("Error: ".mysql_error());
while ($record = mysql_fetch_array($result)) {
if ($a[$record['campo']] == 1) {
// Record valido
} else {
// Record da scartare
}
}
a questo punto, in base all'utilizzo che dovrai fare dei record validi, potresti inserirli in un array ed utilizzarli successivamente.