In teoria se la ricerca non ottiene nessun risultato non passi mai all'interno del while e dunque $array non è mai settato. Potresti fare qualcosa del genere ...
Codice PHP:
$dati = mysql_query("select * from magazzino_prodotti where Articolo = \"$_POST[art]\"");
if(mysql_num_rows($dati) > 0){
while ($array = mysql_fetch_array ($dati)){
// fai quel che devi fare
}
} else {
$sql2 = "INSERT INTO magazzino_prodotti (Articolo,Giacenza) VALUES (\"$_POST[art]\",'$sommanuova')";
mysql_db_query("$nome_db", $sql2, $db);
}