problema con ciclo foreach per estrarre dati da un database

Ci ho messo un pò ma alla fine ho risolto in questo modo:

PHP:
function val($id) {
    if ($id == ""){
        $wh = "";
    } else {
        $wh = "WHERE id LIKE '{$id}'";
    }
    $sql="SELECT * FROM table $wh";
	$iti = mysql_query($sql);// or die("Rilevato un errore");
    if(!$iti || mysql_num_rows($iti) == 0){//verifica se ci sono risultati 
        return false; 
    } else {
		$r=0;//parto da uno perche i record dovrebbero partire da uno
		while ($array[$r++] = mysql_fetch_array($iti)) {}
		return($array);
		@mysql_close($link);		 
		}
}

ed estraggo i risultati in questo modo:

PHP:
			$ap=val("");
			if($ap != false){
				foreach($ap as $record => $campo){ 
					echo "<h1>{$campo['titolo']}</h1>";
					echo "<p>{$campo['testo']}</p>";
					} 
			}else{ 
				echo "richiesta non soddisfatta"; 
			}


Ho solo un piccolo problema. Vengono estratti tutti i record ma anche il primo vuoto, cioè
se ho ad esempio

1) title1 testo1
2) title2 testo2
3) title3 testo3

la funzione mi stampa

title1
testo1

---------------

title2
testo2

-----------

title3
testo3

----------
(record vuoto)
----------

Spero di essere stata chiara.
Come posso risolvere?
 

Discussioni simili