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);